Java學(xué)習(xí)

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對(duì)文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會(huì)盡力幫助解決。一起進(jìn)步

           

          JSF中的commandButton、commandLink、outputLink用法

          comanndButton和commandLink:

          commandLink必須要在一個(gè)from中。

          comanndButton和commandLink要在一個(gè)from中才能提交表單內(nèi)容。

          會(huì)發(fā)送回本頁(yè)面,并觸發(fā)JSF的生命周期,比如:重建組件樹、應(yīng)用請(qǐng)求值等,因此,允許設(shè)置actionListener和action屬性,這樣他們可以很輕松完成強(qiáng)大的功能。

          <h:commandButton actionListener="#{actionListener.check}"; value="送出"; action="#{user.check}" />

          actionListener 響應(yīng)的一個(gè)事件,當(dāng)然這個(gè)和js中的事件不一樣.actionListener="#{actionListener.check}"響應(yīng)的是服務(wù)器端的事件actionListener類的check方法.

          action 用過STRUTS的都知道,提交后執(zhí)行的方法.當(dāng)然在SRTUTS中action="URL",而這里是一個(gè)user類的check方法.

          不足在于:如果重建組件樹的成本比較高(比如:當(dāng)前頁(yè)面顯示一個(gè)數(shù)據(jù)表格),而這些組件對(duì)于即將跳轉(zhuǎn)到的頁(yè)面沒什么用時(shí),就應(yīng)該考慮使用outputLink了。

          <h:commandLink action="#{user.testLink}"><f:verbatim>增加</f:verbatim></h:commandLink>

          另外:如果需要傳遞參數(shù)<f:param.../>,使用commandLink
          在action或actionListener中獲取<f:param.../>:
          FacesContext ctx = FacesContext.getCurrentInstance();
          int productId = Integer.parseInt((String)ctx.getExternalContext().getRequestParameterMap().get("productId"));

          outputLink

          比起前兩個(gè)來(lái)說(shuō),他相當(dāng)?shù)妮p量級(jí)了。他會(huì)直接產(chǎn)生一個(gè)<a href=""></a>鏈接,跳轉(zhuǎn)到相應(yīng)的頁(yè)面,因此沒有進(jìn)入JSF生命周期的額外開銷,跟我們直接寫一個(gè)html的鏈接沒什么區(qū)別。

          如果需要傳遞參數(shù),嵌入<f:param name="a" value="b"/>就可以了,當(dāng)然這里的value可以用表達(dá)式來(lái)表示,比如value="#{param.productId}",用起來(lái)是相當(dāng)方便的。
          <h:outputLink value="productEdit.faces">
          <h:outputText value="編輯"/>
          <f:param name="productId" value="#{item.productId}"/>
          </h:outputLink>

          其效果為<a href="..jsf?productId=..."></a>

          h:commandButton、h:commandLink 和h:outputLink的差別在于:h:outputLink沒有進(jìn)入JSF的生命周期,而h:commandLink和h:commandButton都要進(jìn)入JSF的生命周期.

          posted on 2008-10-07 13:14 找個(gè)美女做老婆 閱讀(1777) 評(píng)論(2)  編輯  收藏

          評(píng)論

          # re: JSF中的commandButton、commandLink、outputLink用法 2009-06-10 10:47 找個(gè)美女做老婆

          http://www.510gougou.com  回復(fù)  更多評(píng)論   

          # re: JSF中的commandButton、commandLink、outputLink用法 2009-06-10 10:47 找個(gè)美女做老婆

          http://www.javaly.cn  回復(fù)  更多評(píng)論   


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


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

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 麦盖提县| 南郑县| 易门县| 平乡县| 正宁县| 自治县| 象山县| 古蔺县| 个旧市| 东明县| 长沙市| 嘉禾县| 永登县| 康马县| 宣威市| 丘北县| 古丈县| 东乡县| 宁晋县| 咸阳市| 揭阳市| 海安县| 双江| 长寿区| 农安县| 社会| 象州县| 客服| 祁门县| 嵩明县| 赞皇县| 长垣县| 南投市| 方山县| 华容县| 桂东县| 雅安市| 绿春县| 洛扎县| 达州市| 屏东县|