Ryan's Java world!

          something about Java and opensource!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            51 Posts :: 25 Stories :: 59 Comments :: 0 Trackbacks
          Ajax4jsf User Guide 中文翻譯
          翻譯專貼: http://bbs.hexiao.cn/read.php?fid=3&tid=13&fpage=1

          序言

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

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



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


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


          下載 Ajax4jsf
          最新的Ajax4jsf 發布版在這里

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

          下載.
          安裝
          解壓 ajax4jsf.zip 文件.
          復制 ajax4jsf.jar and oscache-2.2.jar 到程序的 WEB-INF/lib 文件夾下.
          把下面的內容添加到你的程序的 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>
                    

            注意. 你可以復制和粘貼上面的內容在 README.txt 文件中.

          • 添加下面的內容:

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

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

          簡單的 AJAX Echo 項目

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

          我們這個簡單的程序應該可以讓我們輸入一些文字到<h:inputText>中, 然后發送數據到Server,并在 <h:outputText>中顯示Server的響應(給我們一個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"/>
                

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

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

          數據 Bean

          當然了,為了運行這個程序我們還需要一個受管理的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 有關聯.

          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>
                

          就這樣了, 現在你的程序應該可以工作了.

          部署

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



          第三章 under way................
          posted on 2006-08-11 21:31 冰雨 閱讀(5683) 評論(3)  編輯  收藏 所屬分類: Opensource

          Feedback

          # re: Ajax4jsf User Guide 中文翻譯 -- 在JSF中使用AJAX 2006-12-13 17:11 ff
          ddd  回復  更多評論
            

          # re: Ajax4jsf User Guide 中文翻譯 -- 在JSF中使用AJAX 2008-07-31 16:37
          謝謝 ~.~  回復  更多評論
            

          # re: Ajax4jsf User Guide 中文翻譯 -- 在JSF中使用AJAX 2009-05-19 15:37 wwg
          thank you!  回復  更多評論
            


          JSF中文技術文摘
          主站蜘蛛池模板: 利津县| 青龙| 汽车| 肇庆市| 延边| 浮梁县| 大渡口区| 西乡县| 宕昌县| 广元市| 清远市| 宁阳县| 宝山区| 于田县| 荣成市| 凌海市| 易门县| 繁昌县| 大足县| 晋中市| 含山县| 山阴县| 郎溪县| 沙坪坝区| 石景山区| 东乡县| 怀来县| 德安县| 仁怀市| 琼结县| 丰台区| 尼勒克县| 佳木斯市| 德安县| 明光市| 阿尔山市| 泰和县| 大港区| 昂仁县| 嘉祥县| 敖汉旗|