0

我正在使用带有丰富面孔库的 jsf 1.2

我有这样的表格:

<a4j:form>

    <!-- lof of other components here -->
    <h:panelGrid>

        <h:inputText id="someOrg" value="#{someBean.Data}">
        <a4j:commandButton id=""action="${someOtherBean.processData}" value="Submit"> <!-- it can be a4j:commandButton too-->
    </h:panelGrid>


    <!-- some components will be rendered based on above submission -->

</a4j:form>

如上表所示,我想使用按钮将带有 ajax 的 h:inputText 提交到服务器。只应处理内部的 PART。

我的问题是我想使用 ajax 从 someOtherBean.processData 方法访问 someBean.Data。我该如何实现?

我尝试了以下事情,但没有成功。

1)使用 4j:commandButton 并使用 ajaxSingle="true" ,因为只需要提交某些部分。(如果我提交整个表单验证错误将被抛出)

2) 使用 h:commandButton 和 a4j:support

3)在里面包含必要的组件,使用它只会将选定的区域提交给服务器。

在上述所有情况下,表单都被提交,但 someBean.Data 总是返回 null。

4

1 回答 1

1

如果 Bean1 是请求范围的,您可以使用该 bean 获取该 bean 的当前实例

Bean1 bean =(Bean1) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("bean1");

如果 bean 是会话范围的,那么

Bean1 bean = (Bean1) FacesContext.getCurrentInstance().getExternalContext()
            .getSessionMap().get("bean1");

您可以在您的processData方法中编写上述代码

有关托管 bean 之间通信的更多信息,请访问链接

于 2013-05-14T06:19:05.443 回答