Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不刷新jsf页面_Jsf_Jsf 2 - Fatal编程技术网

为什么不刷新jsf页面

为什么不刷新jsf页面,jsf,jsf-2,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<KhachHa

我创建一个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;
}
@ManagedBean
@请求范围
公共类KhachHangMB实现了可序列化{
@PersistenceContext(unitName=“XoSoWebPU”)
私人实体管理者;
私人名单l;
公共哈什汉姆布(){
l=新的ArrayList();
}
@施工后
公共void init(){
l=新的ArrayList();
l=em.createNamedQuery(“KhachHang.findAll”).getResultList();
MsgShow.showMsg(“,”Init“+Math.random());
}
公共列表检索{
返回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>

还有我的脸

<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>

Trunthuong_列表
/f_trungthuong/trungthuong_list.xhtml
家
index.xhtml

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

我认为您应该尝试将文件
persistence.xml
中的选项
共享缓存模式设置为
None
。这帮助我解决了一个与你不久前类似的问题。:)

如果数据库中的数据已更改,则可以重新启动应用程序,以确保这是JSF问题。正如J4mes先生在回答中解释的那样,这看起来像是一个休眠问题。另一个建议是,您应该将业务逻辑从视图控制器类中分离出来,这样您的应用程序将更易于维护,并且可以拥有可重用的资产(例如检索
KhachHang
对象的完整列表的唯一方法)。非常感谢,这太棒了!