我需要将值(来自文本框的输入)作为参数发送到方法&我是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);
}
这似乎没有做任何事情,我没有打印任何值,但我没有崩溃。那么任何人?
答案 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中删除子标记。