在JSF中重新呈现的属性

时间:2013-03-21 08:25:29

标签: java jsf richfaces

我的表格如下:

<h:form id="x" prependId="false">

      <h:dataTable id="v" value="#{userBean.cdManagerCollection}" var="cd" 
         border="1">

            <f:facet name="header">
                Test Table 
            </f:facet>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Name" />
                </f:facet>
                <h:inputText id="title" value="#{cd.title}"  />
            </h:column>                                                     
        </h:dataTable>

        <input type="hidden" id='btnName' name="btnName" value="Apply"/>
        <a4j:commandButton  id="btn" value="SUBMIT" action="#{userBean.processCD}" reRender="x"/>

</h:form>

我的问题是,当我使用a4j:命令按钮提交表单然后重新呈现时,请求参数(在这种情况下是隐藏的btnName)是否可以访问? (通过facescontext环境变量表示?)

基本上,我需要根据request参数返回$ {userBean.cdManagerCollection}来决定数据。

2 个答案:

答案 0 :(得分:1)

如果您的<input>元素当然可以作为HTTP请求的属性使用,则该值。换句话说,通过调用以下内容,该参数将在您的操作方法userBean.processCD中显示为字符串:

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("btnName");

如果您想采用我强烈建议的JSF方法,您可以将value标记的<h:inputHidden>属性绑定到bean属性,以便JSF可以进行输入转换(验证,转换,财产设置等)本身:

<h:inputHidden id="btnName" value="#{userBean.btnName}"/>

使用托管bean的属性:

private String btnName;//getter+setter

答案 1 :(得分:-1)

如果您已从btnName中读取userBean的参数,那么您的userBean中已有该参数:

<input type="hidden" id="btnName" name="btnName" value="#{userBean.btnParameter}" />