java - JSF 中的重新渲染属性

标签 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:command 按钮提交表单然后重新呈现时,请求参数(在本例中为隐藏的 btnName)是否可供访问? (意味着通过 facescontext 环境变量?)

基本上,我需要根据请求参数在返回 ${userBean.cdManagerCollection} 时决定数据。

最佳答案

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

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

如果您想采用我强烈推荐的 JSF 方法,您可以绑定(bind) value <h:inputHidden> 的属性标记到 bean 属性,以便 JSF 可以自己进行输入转换(验证、转换、属性设置等):

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

使用托管 bean 的属性:

private String btnName;//getter+setter

关于java - JSF 中的重新渲染属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542517/

相关文章:

运行大约一天或更长时间后,Java ConcurrentHashMap putIfAbsent 变慢

java - JSF 2 属性不反射(reflect) ajax 操作后的更改

java - 如何使用Primefaces在Java中查找数据源(dataTable)?

css - 删除 <a4j :jsFunction> 中的 CSS 样式

xhtml - richfaces IE10 "Object doesn' t 支持此属性或方法”

java - 在提交和调用 servlet 之前调用 javascript 验证函数

java - 通过 Internet 获取数据时部分丢失数据

java - 无法绑定(bind) rich :dataTable

java - 使用 Java 进行嵌套 JSON 解析

jsf - JSF 2.0文件上传