生活随笔
收集整理的這篇文章主要介紹了
JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java企業(yè)版JavaEE 6+中提供的JSF 2+的一項(xiàng)不錯(cuò)的功能是,您可以將參數(shù)傳遞給任何操作組件(例如commandButton或commandLink組件)的操作方法。
基于此,您可以最大程度地減少托管bean中的方法數(shù)量。
另外,為了最小化在bean內(nèi)部設(shè)置的許多參數(shù),動(dòng)作可以使用這些參數(shù)來(lái)決定導(dǎo)航邏輯,如果您的bean的作用域大于請(qǐng)求作用域,則可以減少內(nèi)存消耗。
怎么運(yùn)行的: 打開(kāi)您喜歡的IDE,我將使用Netbeans 7.4.1 。 (使用任何支持JavaEE 6或7的IDE)。 創(chuàng)建Web項(xiàng)目。 文件–>新建項(xiàng)目–> Java Web(左窗格) –> Web應(yīng)用程序(右窗格) –>下一步。 隨便命名(對(duì)我來(lái)說(shuō)就是JSFeatures ) –>下一步–>服務(wù)器Glassfish4 –> Java EE 7 Web配置文件–>上下文路徑“ / JSFeatures” –>下一步。
從框架中選擇“ Java Server Faces ” -> Finish。
您應(yīng)該具有以下項(xiàng)目結(jié)構(gòu):
右鍵單擊JSFeatures項(xiàng)目->新的“ JSF Managed Bean ”。 及其名稱(chēng)和配置如下:
在編輯器頁(yè)面中打開(kāi)Bean的情況下,將以下代碼復(fù)制并粘貼到package語(yǔ)句之后: import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;/*** @author mohamed_taman*/
@ManagedBean(name = "jSFeatBean")
@RequestScoped
public class JSFeatursBean {private String result;public String getResult() {return result;}public void setResult(String result) {this.result = result;}public JSFeatursBean() {}public Object addNumbers(int num1,int num2) {setResult("Hi there I am an action method to add numbers.");return null;}
} 打開(kāi)默認(rèn)生成的index.xhtml ,然后復(fù)制以下代碼并將其粘貼到文件中: <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://xmlns.jcp.org/jsf/html"><h:head><title>Facelet Title</title></h:head><h:body>Hello from Facelets<h:form><p><h:outputText value="#{jSFeatBean.result}"/></p>
<h:commandButton type="submit"value="Submit"action="#{jSFeatBean.addNumbers}"/></h:form></h:body>
</html> 右鍵單擊index.xhtml,然后單擊–> 運(yùn)行 ; 您應(yīng)該會(huì)看到以下內(nèi)容:
單擊提交按鈕,觀察h:outputText值,其值應(yīng)為“ Hi,我是一個(gè)操作方法。 “ 現(xiàn)在一切正常。 讓我們做我需要演示的實(shí)際工作。 將addNumbers()方法簽名更改為以下內(nèi)容( 無(wú)需重新啟動(dòng)應(yīng)用程序服務(wù)器 ): Bean方法: public Object addNumbers(int num1) {int res = 0;res = num1;if (res == 0) {setResult("Hi there I am an action method to add numbers.");} else {setResult("Final result is: " + res);}return null;} 然后您的按鈕呼叫到: <h:commandButton type="submit"value="Submit" action="#{jSFeatBean.addNumbers(1)}"/> 按下按鈕,輸出文本值應(yīng)為: Final result is: 1 再做一次: Bean方法: public Object addNumbers(int num1, int num2) {int res = 0;res = num1 + num2;if (res == 0) {setResult("Hi there I am an action method to add numbers.");} else {setResult("Final result is: " + res);}return null;} 然后您的按鈕呼叫到: <h:commandButton type="submit"value="Submit" action="#{jSFeatBean.addNumbers(1,2)}"/> 按下按鈕,輸出文本值應(yīng)為: Final result is: 3 注意:該參數(shù)可能具有不同的參數(shù)類(lèi)型,但預(yù)計(jì)不會(huì)是同一類(lèi)型,該方法也可能返回用于導(dǎo)航到其他頁(yè)面的值,在此示例中,該參數(shù)返回null表示在同一頁(yè)面上。
我非常喜歡此功能,非常有用,方便,編碼愉快。
資源:
JavaEE 7教程(7.5導(dǎo)航模型)。
參考: JSF:直接從頁(yè)面將參數(shù)傳遞給JSF動(dòng)作方法,這是我們的JCG合作伙伴 Mohamed Taman在“ 通過(guò)科學(xué)和藝術(shù)改善生活”博客上的JavaEE 6+的一項(xiàng)不錯(cuò)功能 。
翻譯自: https://www.javacodegeeks.com/2014/01/jsf-passing-parameters-to-jsf-action-methods-from-page-directly-a-nice-feature-of-javaee-6.html
總結(jié)
以上是生活随笔 為你收集整理的JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。