我有一个需要在表单提交时设置为jsf支持bean的硬编码值。
任何人都可以告诉你。
<h:inputHidden value="#{leaveBean.fApproverEmail}"></h:inputHidden>
但是我希望在"#{leaveBean.fApproverEmail}"
的位置发送一个硬编码值并将其设置为支持bean的属性..
答案 0 :(得分:5)
将您的媒体资源初始化为您的硬编码值。 JSF将在表单提交时自动更新此属性。因此,如果它已经更改,您将在操作方法中获得更新的属性值。
String fApproverEmail = "default";
<h:inputHidden id="app" value="#{leaveBean.fApproverEmail}" />
拥有纯HTML <input type="hidden">
或无价值<h:inputHidden>
。这样,提交的值在请求参数映射中可用。因此,您可以从ExternalContext#getRequestParameterMap()
获取名称作为密钥。但要注意,如果你的对象不是一个字符串,你必须自己进行转换/验证,而操作方法是放错逻辑的错误位置。
String fApproverEmail;
public void action() {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
String s1 = ec.getRequestParameterMap().get("plain");
String s2 = ec.getRequestParameterMap().get("form:jsf");
fApproverEmail = ...;//and-or other logic
}
<h:form id="form">
<h:inputHidden id="jsf" />
<input type="hidden" id="plain" name="plain" value="#{backingBean.fApproverEmail}"/>
...
</h:form>
答案 1 :(得分:0)
您可以直接从h:inputHidden标记调用bean方法,这样您就可以使用另一个bean方法来获取所需的值。
<h:inputHidden value="#{leaveBean.fApproverEmail(otherBean.methodOrProperty)}"/>