我有一个硬编码的值,需要在表单提交时设置为 jsf 支持 bean。
任何人都可以告诉这一点。
<h:inputHidden value="#{leaveBean.fApproverEmail}"></h:inputHidden>
但我想发送一个硬编码值代替"#{leaveBean.fApproverEmail}"
并将其设置为支持 bean 的属性..
我有一个硬编码的值,需要在表单提交时设置为 jsf 支持 bean。
任何人都可以告诉这一点。
<h:inputHidden value="#{leaveBean.fApproverEmail}"></h:inputHidden>
但我想发送一个硬编码值代替"#{leaveBean.fApproverEmail}"
并将其设置为支持 bean 的属性..
将您的属性初始化为硬编码值。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>
您可以直接从您的 h:inputHidden 标签调用 bean 方法,这样您就可以使用另一个 bean 方法来获取您需要的值。
<h:inputHidden value="#{leaveBean.fApproverEmail(otherBean.methodOrProperty)}"/>