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
Jsf 2 @ManagedProperty未在下一页维护托管bean属性_Jsf 2 - Fatal编程技术网

Jsf 2 @ManagedProperty未在下一页维护托管bean属性

Jsf 2 @ManagedProperty未在下一页维护托管bean属性,jsf-2,Jsf 2,我是JSF新手。在我的项目中,我使用@ManagedBean、@requestscope。我在我的项目中使用了4页。我的问题是在第二、第三和第四页中没有维护bean值。我正确地使用了getter和setter。如果我没有使用@ManagedProperty,bean值将得到正确维护。但是我需要使用 @管理财产。你能告诉我如何解决这个问题吗。我复制了一些示例代码以供参考 @ManagedBean @RequestScoped public class ArticlePrepToolManagedB

我是JSF新手。在我的项目中,我使用@ManagedBean、@requestscope。我在我的项目中使用了4页。我的问题是在第二、第三和第四页中没有维护bean值。我正确地使用了getter和setter。如果我没有使用@ManagedProperty,bean值将得到正确维护。但是我需要使用 @管理财产。你能告诉我如何解决这个问题吗。我复制了一些示例代码以供参考

@ManagedBean
@RequestScoped
public class ArticlePrepToolManagedBean implements Runnable, Serializable {

    @ManagedProperty (value="#{param.jidName}")
    private String jidName;

    @ManagedProperty (value="#{param.aidName}")
    private String aidName;

    private List<com.elsevier.ArticlePrepTool.db.ItemZipContains> usabilityDetailList = null;

    public String getAidName() {
            return aidName;
    }

    public void setAidName(String aidName) {
            this.aidName = aidName;
    }

    public String getJidName() {
            return jidName;
    }

    public void setJidName(String jidName) {
            this.jidName = jidName;
    }

    public List<ItemZipContains> getUsabilityDetailList() {
         return usabilityDetailList;
    }

    public void setUsabilityDetailList(List<ItemZipContains> usabilityDetailList) {
       ArticlePrepToolManagedBean.usabilityDetailList = usabilityDetailList;
    }

}
@ManagedBean
@请求范围
公共类ArticlePrepToolManagedBean实现可运行、可序列化的{
@ManagedProperty(value=“#{param.jidName}”)
私有字符串jidName;
@ManagedProperty(value=“#{param.aidName}”)
私有字符串名称;
私有列表usabilityDetailList=null;
公共字符串getAidName(){
返回aidName;
}
public void setAidName(字符串aidName){
this.aidName=aidName;
}
公共字符串getJidName(){
返回jidName;
}
public void setJidName(字符串jidName){
this.jidName=jidName;
}
公共列表getUsabilityDetailList(){
返回可用性详细列表;
}
public void setUsabilityDetailList(列表usabilityDetailList){
ArticlePrepToolManagedBean.usabilityDetailList=usabilityDetailList;
}
}
我的项目url是(http://localhost:8080/articlepreptool/)但我的项目的输入是jidName=aeaaidname=10663。如果用户使用以下href“”触发,则由其他网页提供的输入。根据输入,我在项目数据库中获取了一些数据(使用JPA),并在第一页列出了数据。但如果我转到下一页,我从DB获得的列表中存储的所有以前的数据都被清除了,即所有在bean中设置的列表值和变量都变为null。因此,您能告诉我如何解决这个问题吗?只有当我使用@ManagedProperty时,才会出现这个问题。我使用@ManagedProperty通过url获取输入值,因为我的项目的输入值来自其他网页。

A
@ManagedProperty(#{param.foo}”)
基本上是在bean构建之后直接将名为
“foo”
的HTTP请求参数设置为bean属性。如果您正在为它们检索
null
值,那么这仅仅意味着这些参数不存在于HTTP请求中

假设您通过普通链接导航,则需要修复链接以包含请求参数:

<h:link value="Go to page2" outcome="page2">
    <f:param name="jidName" value="#{bean.jidName}" />
    <f:param name="aidName" value="#{bean.aidName}" />
</h:link>

这将导致如下结果:

<a href="page2.xhtml?jidName=foo&aidname=bar">


如果您通过表单提交进行导航,那么就没有理由使用它们。或者你一定是在滥用表单而不是普通页面间导航的链接。

我的项目url是(),但我的项目的输入是jidName=AEA aidName=10663。如果用户使用href.rel=“nofollow noreferrer”>localhost:8080/articlepreptool/…触发其他网页,则该网页提供的输入取决于我在项目数据库中获取的一些数据(使用JPA)并在第一页列出数据。但如果我转到下一页,我从DB获得的列表中存储的所有以前的数据都被清除,即所有在bean中设置的列表值和变量都变为空。请告知。感谢您的回复。请详细解释如何解决此问题。