怎么用JavaServer Faces开发Web应用(faces,javaserver,web,编程语言)

时间:2024-05-04 05:01:08 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    %E6%80%8E%E4%B9%88%E7%94%A8JavaServer+Faces%E5%BC%80%E5%8F%91Web%E5%BA%94%E7%94%A8

1、事件处理。

XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

下一步就是写事件处理器程序用来响应组件事件(诸如,选择了一个多选的选项或者点击一个按钮提交一个表单等等)。对于简单的应用,你还需指明当一个表单被提交或者访问一个超级连接时,哪一个页面会被访问。你可以实现ApplicationHandler 这个接口达到这个目的。下面的代码段显示了一个例子。这个例子中,我要看看FormEvent是不是index.JSP中Submit按钮触发的。如果是, 组件树ID就会设置为与index.jsp页面相关联的组件树的ID。

代码5 BasicApplicationHandler.Java

import java.util.SortedMap;

import javax.faces.FacesException;

import javax.faces.component.UIComponent;

import javax.faces.context.FaceSCOntext;

import javax.faces.tree.Tree;

import javax.faces.tree.TreeFactory;

import javax.faces.FactoryFinder;

import javax.faces.lifecycle.ApplicationHandler;

import javax.faces.event.FormEvent;

import javax.faces.event.FacesEvent;

import javax.faces.event.CommandEvent;

import com.sun.faces.RIConstants;

public class BasicApplicationHandler implements ApplicationHandler{

public boolean processEvent(FacesContext context, FacesEvent facesEvent) {

if (!(facesEvent instanceof FormEvent) &&

!(facesEvent instanceof CommandEvent)) {

return true;

}

boolean returnValue = false;

String treeId = null;

if (facesEvent instanceof FormEvent) {

FormEvent formEvent = (FormEvent) facesEvent;

if (formEvent.getCommandName().equals("submit")) {

treeId = "/hello.jsp";

}

returnValue = true;

} else if (facesEvent instanceof CommandEvent) {

CommandEvent commandEvent = (CommandEvent)facesEvent;

UIComponent c = commandEvent.getComponent();

if (c.getAttribute("target") != null) {

treeId = (String)c.getAttribute("target");

returnValue = true;

}

}

if (null != treeId) {

TreeFactory treeFactory = (TreeFactory)

FactoryFinder.getFactory(FactoryFinder.TREE_FACTORY);

context.setTree(treeFactory.getTree(context,treeId));

}

return returnValue;

}

}

2、开发上下文监听程序。

如果你仔细看过部署描述文件web.xml,你会注意我声明了一个servlet上下文监听程序(BasicServletContextListener)。当应用启动时,servlet容器会创建一个servlet context listener的实例,并调用它的contextInitialized 方法;当应用关闭的时候,会调用它的contextDestroyed 方法。下面是一个servlet context listener的例子。

代码6 BasicServletContextListener.java

import javax.servlet.ServletContextListener;

import javax.servlet.ServletContextEvent;

import javax.faces.FactoryFinder;

import javax.faces.lifecycle.LifecycleFactory;

import javax.faces.lifecycle.Lifecycle;

import javax.faces.lifecycle.ApplicationHandler;

public class BasicServletContextListener implements ServletContextListener {

public BasicServletContextListener() {

}

public void contextInitialized(ServletContextEvent e) {

ApplicationHandler handler = new BasicApplicationHandler();

LifecycleFactory factory = (LifecycleFactory)

FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);

Lifecycle lifecycle =

factory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);

lifecycle.setApplicationHandler(handler);

}

public void contextDestroyed(ServletContextEvent e){

}

}

3、完成响应页面。

当index.jsp中的表单被提交后,应用处理器程序启动,然后用户会被转发到响应页面hello.jsp。代码如下:

Code Sample 7: hello.jsp

Hello

<%@ taglib="" uri="http://java.sun.com/jsf/html" prefix="h">

<%@ taglib="" uri="http://java.sun.com/jsf/core" prefix="f">

modelReference="UserNameBean.userName" />

本文:怎么用JavaServer Faces开发Web应用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java与HTML的关系是什么下一篇:

16 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18