Java 在JSF中重新呈现属性
我有如下表格:Java 在JSF中重新呈现属性,java,jsf,richfaces,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: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:command按钮提交表单,然后重新呈现表单时,请求参数(在本例中是隐藏的btnName)是否可以访问?(是指通过facescontext环境变量?)
基本上,我需要在基于请求参数返回${userBean.cdManagerCollection}时决定数据 如果您从
userBean
中读取btnName
的参数,您的userBean
中已经有了该参数:
<input type="hidden" id="btnName" name="btnName" value="#{userBean.btnParameter}" />
如果
元素的值当然可以作为HTTP请求的属性使用。换句话说,该参数将作为字符串显示在动作方法userBean.processCD
中,通过调用:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("btnName");
如果您想采用我强烈推荐的JSF方法,可以将
标记的值
属性绑定到bean属性,这样JSF就可以自己进行输入转换(验证、转换、属性设置等):
<h:inputHidden id="btnName" value="#{userBean.btnName}"/>
不幸的是,这不会设置托管bean的属性,它只会在初始页面加载期间通过读取属性预填充隐藏的输入。这与OP的问题无关,这与你正在做的相反。
private String btnName;//getter+setter