2

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

任何人都可以告诉这一点。

 <h:inputHidden value="#{leaveBean.fApproverEmail}"></h:inputHidden>

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

4

2 回答 2

7

选项1。

将您的属性初始化为硬编码值。JSF 将在表单提交时自动更新此属性。因此,如果它发生了变化,您最终将在您的操作方法中获得更新的属性值。

String fApproverEmail = "default";

<h:inputHidden id="app" value="#{leaveBean.fApproverEmail}" />

选项 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>
于 2013-11-08T06:56:47.830 回答
0

您可以直接从您的 h:inputHidden 标签调用 bean 方法,这样您就可以使用另一个 bean 方法来获取您需要的值。

<h:inputHidden value="#{leaveBean.fApproverEmail(otherBean.methodOrProperty)}"/>
于 2017-04-20T10:20:21.997 回答