为什么不刷新jsf页面

时间:2012-08-17 20:16:36

标签: jsf jsf-2

我创建一个bean作为

@ManagedBean
@RequestScoped
public class KhachHangMB implements Serializable {
@PersistenceContext(unitName = "XoSoWebPU")
private EntityManager em;
private List<KhachHang> l;

public KhachHangMB() {
    l = new ArrayList<KhachHang>();
}
@PostConstruct
public void init() {
    l = new ArrayList<KhachHang>();
    l = em.createNamedQuery("KhachHang.findAll").getResultList();
    MsgShow.showMsg("", "Init " + Math.random());
}

public List<KhachHang> retriveAllKhachHang() {
    return l;
}

}

我的jsf页面:

<h:form>
            <h1><h:outputText value="List"/></h1>
            <h:dataTable value="#{khachHangMB.retriveAllKhachHang()}" var="item">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Idkh"/>
                    </f:facet>
                    <h:outputText value="#{item.idkh}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="TenKH"/>
                    </f:facet>
                    <h:outputText value="#{item.tenKH}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Cmnd"/>
                    </f:facet>
                    <h:outputText value="#{item.cmnd}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="DiaChi"/>
                    </f:facet>
                    <h:outputText value="#{item.diaChi}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="SoDT"/>
                    </f:facet>
                    <h:outputText value="#{item.soDT}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Email"/>
                    </f:facet>
                    <h:outputText value="#{item.email}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="MaDuThuong"/>
                    </f:facet>
                    <h:outputText value="#{item.maDuThuong}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="GhiChu"/>
                    </f:facet>
                    <h:outputText value="#{item.ghiChu}"/>
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="MatKhau"/>
                    </f:facet>
                    <h:outputText value="#{item.matKhau}"/>
                </h:column>
            </h:dataTable>
            <h:commandLink value="Click" action="home" />
        </h:form>

我的faces-config

<navigation-rule>
    <navigation-case>
        <from-outcome>trungthuong_list</from-outcome>
        <to-view-id>/f_trungthuong/trungthuong_list.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>
<navigation-rule>
    <navigation-case>
        <from-outcome>home</from-outcome>
        <to-view-id>index.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>

我点击命令链接随机被调用但页面上的数据没有改变,尽管我已经编辑了数据库上的数据。另一种情况,我导航到其他页面后,我返回,但数据是旧的(不使用Web浏览器的后面,我正在使用命令链接)!请帮帮我!

1 个答案:

答案 0 :(得分:0)

我认为您应该尝试将文件Shared Cache Mode中的选项persistence.xml设置为None。这帮助我在不久前解决了与你类似的problem。 :)