如何从视图中为jsf支持bean设置隐藏值

1 jsf

我有一个硬编码的值,需要在表单提交时设置为jsf支持bean.

任何人都可以告诉我们.

 <h:inputHidden value="#{leaveBean.fApproverEmail}"></h:inputHidden>
Run Code Online (Sandbox Code Playgroud)

但我想发送一个硬编码值,"#{leaveBean.fApproverEmail}"并将其设置为支持bean的属性..

sku*_*sel 6

选项1.

将您的财产初始化为您的硬编码值.JSF将在表单提交时自动更新此属性.因此,如果它已更改,您将在操作方法中获得更新的属性值.

String fApproverEmail = "default";

<h:inputHidden id="app" value="#{leaveBean.fApproverEmail}" />
Run Code Online (Sandbox Code Playgroud)

选项2.

拥有纯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>
Run Code Online (Sandbox Code Playgroud)