Ryan's Java world!

          something about Java and opensource!

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

          序言

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

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



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


          環(huán)境要求
          要使用Ajax4JSF 框架你僅僅需要JDK1.4或者更高,任何JSF實(shí)現(xiàn),和你最喜歡的Servlet容器.在下一章我們將給你提供詳細(xì)的環(huán)境信息.
          Ajax4jsf 被設(shè)計(jì)為一個(gè)容易使用的框架.僅僅有一點(diǎn)簡(jiǎn)單的設(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"%>
                    

            到你每個(gè)使用Ajax功能的JSP頁(yè)面中.

          簡(jiǎn)單的 AJAX Echo 項(xiàng)目

          讓我們來(lái)看一個(gè)簡(jiǎn)單的JSF項(xiàng)目. 我們僅僅需要一個(gè)JSP頁(yè)面,里面包含一個(gè)Form和一些JSF標(biāo)簽: <h:inputText> 和 <h:outputText>.

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

          JSP 頁(yè)面

          下面是一個(gè)我們需要的頁(yè)面代碼 (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頁(yè)面代碼不同的就是下面的一行

              <a4j:support event="onkeyup" reRender="rep"/>
                

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

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

          數(shù)據(jù) Bean

          當(dāng)然了,為了運(yùn)行這個(gè)程序我們還需要一個(gè)受管理的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 中注冊(cè)上面的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>
                

          注意:這里沒(méi)有任何東西直接和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



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

          Feedback

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

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

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


          JSF中文技術(shù)文摘
          主站蜘蛛池模板: 邹城市| 霍州市| 翁牛特旗| 玉田县| 若尔盖县| 深圳市| 山阳县| 定南县| 富源县| 凤庆县| 阳东县| 张掖市| 手游| 崇礼县| 宣汉县| 新宁县| 木兰县| 潞城市| 岑溪市| 建德市| 贵德县| 泰顺县| 六盘水市| 白城市| 屏山县| 铜山县| 美姑县| 香港 | 河源市| 绥宁县| 独山县| 新绛县| 鄄城县| 清水县| 阳高县| 乌拉特中旗| 天全县| 九寨沟县| 贵港市| 佛冈县| 龙口市|