我的表格如下:
<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}来决定数据。
答案 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}" />