JSF&发送参数

时间:2012-01-23 08:08:25

标签: jsf parameters javabeans

我需要将值(来自文本框的输入)作为参数发送到方法&我是JSF的新人。

假设我有一个表单,链接到托管bean

<h:form id="myForm">
   <h:inputText id="atribute1" value="#{myBean.atribute1}"></h:inputText>
   <h:inputText id="atribute2" value="#{myBean.atribute2}"></h:inputText>

   <h:commandButton id="btn" value="SendData" action="#{myBean.save}">
    <p:param name="param1" value="${atribute1}"/>
        <p:param name="param2" value="${atribute2}"/>
   </h:commandButton>
</h:form>

托管bean有一个“保存”方法(我在这里做了一个void方法,但Eclipse似乎希望它返回一个String ??)

public void save() {
FacesContext context = FacesContext.getCurrentInstance();  
Map<String,String> params  = context.getExternalContext().getRequestParameterMap();
String param1= params.get("param1");
String param2= params.get("param2");

System.out.println("param1:"+param1+" & param2:"+param2);
}

这似乎没有做任何事情,我没有打印任何值,但我没有崩溃。那么任何人?

1 个答案:

答案 0 :(得分:1)

假设你想在保存方法中对值进行操作。

您已经通过value="#{myBean.atribute1}"将要在文本框中输入的值链接到支持bean,这表明当您提交页面时,此处输入的vallue将在名为mybean的托管bean的属性atribute1中可用你可以直接用save方法访问它们。

public void save() {
   System.out.println("param1:"+this.attribute1+" & param2:"+this.attribute2);
}

确保您拥有两个属性的getter / setter,并从commandbutton中删除子标记。