kingpub

          海內(nèi)存知己,博客若比鄰

           

          Ajax4jsf User Guide 中文翻譯 -- 在JSF中使用AJAX

          Ajax4jsf User Guide 中文翻譯
          翻譯專貼: http://bbs.hexiao.cn/read.php?fid=3&tid=13&fpage=1

          序言

          Ajax4JSF是一個很容易使用的框架, 在其User Guide中詳細(xì)介紹了如何使用其功能,找時間學(xué)習(xí)一下,并翻譯出來 以加深理解和方便更多的Java愛好者使用Ajax4jsf 框架.

          翻譯進(jìn)度和問題可以在論壇討論. http://bbs.hexiao.cn/



          第二章是一個簡單的入門程序,看完這一章你就可以建立基本的Ajax程序了.
          Chapter 2. Getting Started with Ajax4jsf


          環(huán)境要求
          要使用Ajax4JSF 框架你僅僅需要JDK1.4或者更高,任何JSF實現(xiàn),和你最喜歡的Servlet容器.在下一章我們將給你提供詳細(xì)的環(huán)境信息.
          Ajax4jsf 被設(shè)計為一個容易使用的框架.僅僅有一點簡單的設(shè)置步驟就可以在你的JSF程序中使用Ajax功能了.


          下載 Ajax4jsf
          最新的Ajax4jsf 發(fā)布版在這里

          https://ajax4jsf.dev.java.net/nonav/ajax/ajax-jsf/download.html

          下載.
          安裝
          解壓 ajax4jsf.zip 文件.
          復(fù)制 ajax4jsf.jar and oscache-2.2.jar 到程序的 WEB-INF/lib 文件夾下.
          把下面的內(nèi)容添加到你的程序的 WEB-INF/web.xml 文件中:
          •  <filter>
                      <display-name>Ajax4jsf Filter</display-name>
                      <filter-name>ajax4jsf</filter-name>
                      <filter-class>org.ajax4jsf.Filter</filter-class>
                      </filter>
                      <filter-mapping>
                      <filter-name>ajax4jsf</filter-name>
                      <servlet-name>Faces Servlet</servlet-name>
                      <dispatcher>REQUEST</dispatcher>
                      <dispatcher>FORWARD</dispatcher>
                      <dispatcher>INCLUDE</dispatcher>
                      </filter-mapping>
                    

            注意. 你可以復(fù)制和粘貼上面的內(nèi)容在 README.txt 文件中.

          • 添加下面的內(nèi)容:

              <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
                    

            到你每個使用Ajax功能的JSP頁面中.

          簡單的 AJAX Echo 項目

          讓我們來看一個簡單的JSF項目. 我們僅僅需要一個JSP頁面,里面包含一個Form和一些JSF標(biāo)簽: <h:inputText> 和 <h:outputText>.

          我們這個簡單的程序應(yīng)該可以讓我們輸入一些文字到<h:inputText>中, 然后發(fā)送數(shù)據(jù)到Server,并在 <h:outputText>中顯示Server的響應(yīng)(給我們一個Echo信息).

          JSP 頁面

          下面是一個我們需要的頁面代碼 (echo.jsp) :

              <%@ 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"/>
                

          在這里我們在父標(biāo)簽(<h:inputText>)中添加了一個AJAX 支持. 該支持綁定了JavaScript事件“onkeyup” .因此, 每一次該事件發(fā)布給父標(biāo)簽時,我們的程序?qū)l(fā)送一個AJAX請求到Server.這意味著我們的受管理的bean將包含該“text” 域中我們輸入的最新數(shù)據(jù).

          <a4j:support> 標(biāo)簽的“reRender” 屬性(attribute)定義我們的頁面的哪一部分被更新. 在這里,該頁面唯一被更新的部位是 <h:outputText> 標(biāo)簽,因為他的ID值和“reRender” 的屬性值向匹配. 在一個頁面中更新多個元素(elements)也是很簡單的:僅僅把他們的IDs放在 “reRender” 屬性中就可以了.

          數(shù)據(jù) Bean

          當(dāng)然了,為了運行這個程序我們還需要一個受管理的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

          下一步, 我們需要在faces-config.xml 中注冊上面的bean:

              <?xml version="1.0" encoding="UTF-8"?>
              <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD 	JavaServer Faces Config 1.1//EN"
              "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
              <faces-config>
                <managed-bean>
                  <managed-bean-name>bean</managed-bean-name>
                  <managed-bean-class>demo.Bean</managed-bean-class>
                  <managed-bean-scope>request</managed-bean-scope>
                  <managed-property>
                    <property-name>text</property-name>
                    <value/>
                  </managed-property>
                </managed-bean>
              </faces-config>
                

          注意:這里沒有任何東西直接和Ajax4jsf 有關(guān)聯(lián).

          Web.xml

          最后,不要忘了添加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>a4jEchoText</display-name>
                <context-param>
                  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
                  <param-value>server</param-value>
                </context-param>
                <filter>
                  <display-name>Ajax4jsf Filter</display-name>
                  <filter-name>ajax4jsf</filter-name>
                  <filter-class>org.ajax4jsf.Filter</filter-class>
                </filter>
                <filter-mapping>
                  <filter-name>ajax4jsf</filter-name>
                  <servlet-name>Faces Servlet</servlet-name>
                  <dispatcher>REQUEST</dispatcher>
                  <dispatcher>FORWARD</dispatcher>
                  <dispatcher>INCLUDE</dispatcher>
                </filter-mapping>
                <listener>
                  <listener-class>
                    com.sun.faces.config.ConfigureListener
                  </listener-class>
                </listener>
                
                <!-- Faces Servlet -->
                <servlet>
                  <servlet-name>Faces Servlet</servlet-name>
                  <servlet-class>
                    javax.faces.webapp.FacesServlet
                  </servlet-class>
                  <load-on-startup>1</load-on-startup>
                </servlet>
                
                <!-- Faces Servlet Mapping -->
                <servlet-mapping>
                  <servlet-name>Faces Servlet</servlet-name>
                  <url-pattern>*.jsf</url-pattern>
                </servlet-mapping>
                <login-config>
                  <auth-method>BASIC</auth-method>
                </login-config>
              </web-app>
                

          就這樣了, 現(xiàn)在你的程序應(yīng)該可以工作了.

          部署

          最終,你可以在Servlet容器中部署你的程序了. 在你喜歡的容器中部署,然后在你的瀏覽器中輸入: http://localhost:8080/a4jEchoText/echo.jsf


          posted on 2006-08-15 09:42 xiaofeng 閱讀(165) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 松阳县| 吉木萨尔县| 原平市| 湟源县| 永年县| 永修县| 朝阳市| 吉首市| 浑源县| 洛扎县| 昌平区| 阿尔山市| 五华县| 轮台县| 黎城县| 长宁区| 武义县| 滁州市| 湘潭县| 沂源县| 南靖县| 梨树县| 沧源| 甘孜县| 平顶山市| 昭苏县| 分宜县| 榆社县| 兴安县| 桐城市| 凤翔县| 宜黄县| 岗巴县| 建阳市| 江津市| 留坝县| 彰化县| 芜湖县| 南昌县| 文昌市| 连州市|