要使用Ajax4JSF 框架你仅仅需要JDK1.4或者更高,任何JSF实现,和你最喜欢的Servlet容器.在下一章我们将给你提供详细的环境信息.
Ajax4jsf 被设计为一个容易使用的框架.仅仅有一点简单的设置步骤就可以在你的JSF程序中使用Ajax功能了.
让我们来看一个简单的JSF项目. 我们仅仅需要一个JSP页面,里面包含一个Form和一些JSF标签: <h:inputtext>和 <h:outputtext>. </h:outputtext></h:inputtext>
我们这个简单的程序应该可以让我们输入一些文字到<h:inputtext>中, 然后发送数据到Server,并在 <h:outputtext>中显示Server的响应(给我们一个Echo信息). </h:outputtext></h:inputtext>
下面是一个我们需要的页面代码 (echo.jsp) :
xml 代码
- <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
- <html>
- <head>
- <title>repeater </title>
- </head>
- <body>
- <f:view>
- <h:form>
- <h:inputText size="50" value="#{bean.text}" >
- <a4j:support event="onkeyup" reRender="rep"/>
- </h:inputText>
- <h:outputText value="#{bean.text}" id="rep"/>
- </h:form>
- </f:view>
- </body>
- </html>
就如你看到的,唯一一行于常给JSF页面代码不同的就是下面的一行
- <a4j:support event="onkeyup" reRender="rep"/>
在这里我们在父标签(<h:inputtext>)中添加了一个AJAX 支持. 该支持绑定了JavaScript事件“onkeyup” .因此, 每一次该事件发布给父标签时,我们的程序将发送一个AJAX请求到Server.这意味着我们的受管理的bean将包含该“text” 域中我们输入的最新数据. </h:inputtext>
<a4j:support>标签的“reRender” 属性(attribute)定义我们的页面的哪一部分被更新. 在这里,该页面唯一被更新的部位是 <h:outputtext>标签,因为他的ID值和“reRender” 的属性值向匹配. 在一个页面中更新多个元素(elements)也是很简单的:仅仅把他们的IDs放在 “reRender” 属性中就可以了. </h:outputtext></a4j:support>
当然了,为了运行这个程序我们还需要一个受管理的bean
- package demo;
- public class Bean {
- private String text;
-
- public Bean() {
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
- }
下一步, 我们需要在faces-config.xml 中注册上面的bean:
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->
- "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
- <faces-config>
- <managed-bean>
- <managed-bean-name>beanmanaged-bean-name>
- <managed-bean-class>demo.Beanmanaged-bean-class>
- <managed-bean-scope>requestmanaged-bean-scope>
- <managed-property>
- <property-name>textproperty-name>
- <value/>
- managed-property>
- managed-bean>
- faces-config>
注意:这里没有任何东西直接和Ajax4jsf 有关联.
最后,不要忘了添加jar文件和更改 web.xml 文件:
- <!---->xml version="1.0"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
-
- <display-name>a4jEchoTextdisplay-name>
- <context-param>
- <param-name>javax.faces.STATE_SAVING_METHODparam-name>
- <param-value>serverparam-value>
- context-param>
- <filter>
- <display-name>Ajax4jsf Filterdisplay-name>
- <filter-name>ajax4jsffilter-name>
- <filter-class>org.ajax4jsf.Filterfilter-class>
- filter>
- <filter-mapping>
- <filter-name>ajax4jsffilter-name>
- <servlet-name>Faces Servletservlet-name>
- <dispatcher>REQUESTdispatcher>
- <dispatcher>FORWARDdispatcher>
- <dispatcher>INCLUDEdispatcher>
- filter-mapping>
- <listener>
- <listener-class>
- com.sun.faces.config.ConfigureListener
- listener-class>
- listener>
-
-
- <servlet>
- <servlet-name>Faces Servletservlet-name>
- <servlet-class>
- javax.faces.webapp.FacesServlet
- servlet-class>
- <load-on-startup>1load-on-startup>
- servlet>
-
-
- <servlet-mapping>
- <servlet-name>Faces Servletservlet-name>
- <url-pattern>*.jsfurl-pattern>
- servlet-mapping>
- <login-config>
- <auth-method>BASICauth-method>
- login-config>
- web-app>
就这样了, 现在你的程序应该可以工作了.
最终,你可以在Servlet容器中部署你的程序了. 在你喜欢的容器中部署,然后在你的浏览器中输入: http://localhost:8080/a4jEchoText/echo.jsf
分享到:
相关推荐
Chapter 1. Seam 入门.................................................................................................................................................................14 1.1. 试试看........
"chapter12"文件名暗示这可能是手册中关于某一特定主题的代码示例,例如,第12章可能涉及JSF组件库的使用、自定义组件、数据验证、或者是与Ajax集成等内容。在JSF中,章节12的代码实例可能会涵盖以下知识点: 1. **...
4. **控制器(Controller)**:JSF的控制器由事件驱动,当用户与界面交互时,会触发相应的动作事件,这些事件由JSF的生命周期处理,最终调用后台的事件处理方法。 5. **生命周期(Lifecycle)**:JSF有六步生命周期...