如何使用JSF中的requestcoped包装bean更新dataTable?

时间:2012-11-10 22:16:49

标签: jsf session datatable request updating

我有mainMenu-xhtml页面,其中是Datatable。当我向该表添加一个新对象时,它不会更新,因为使用的托管bean是会话范围的。我正在尝试实现requestScoped wrapperBean来进行更新。

面孔-配置:

<navigation-case>
        <from-action>#{RmaBeanWrapper.submit}</from-action>
        <from-outcome>refreshedMainMenu</from-outcome>
        <to-view-id>/mainMenu.xhtml</to-view-id>
    </navigation-case>
<managed-bean>
    <managed-bean-name>RmaBeanWrapper</managed-bean-name>
    <managed-bean-class>fi.controllers.RmaBeanWrapper</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <property-name>rmaBean</property-name>
        <value>#{RmaBean}</value>
    </managed-property>
</managed-bean>

RmaBeanWrapper

@ManagedBean
@RequestScoped
public class RmaBeanWpapper implements Serializable  {

private RmaBean rmaBean;
private RmaBean refreshedBean;

public RmaBean getRmaBean() {
    return rmaBean;
}

public void setRmaBean(RmaBean rmaBean) {
    this.rmaBean = rmaBean;
}

public RmaBean getRefreshedBean() {
    return refreshedBean;
}

public void setRefreshedBean(RmaBean refreshedBean) {
    this.refreshedBean = refreshedBean;
}


public String submit() {
   System.out.println("#########RmaBeanWpapper.submit#########"); 
   this.refreshedBean = rmaBean;

    return "refreshedMainMenu";

}

mainMenu.xhtml

<p:panelGrid style="margin-top:20px;" styleClass="noBorders">
                <p:row rendered="true">
                    <p:column></p:column>
                    <p:column></p:column>
                    <p:column><p:commandButton action="#{RmaBeanWpapper.submit}" ajax="false" value="Update Table" style="width: 220px;"/></p:column>
                    <p:column></p:column>
                </p:row>

}

发生了什么事?没有! mainMenu.xhtml页面甚至没有打开,服务器日志中甚至没有任何例外。 Samehow我必须更新我的表,但我的实现有问题。有任何想法吗?我无法将rmaBean更改为sessionScoped,因为它在软件中的任何地方都使用,我无法对其进行更改。

干杯, 萨米

0 个答案:

没有答案