Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 为什么不是';t我的请求范围的支持bean';调用的构造函数是什么?_Jsf_Javabeans_Icefaces - Fatal编程技术网

Jsf 为什么不是';t我的请求范围的支持bean';调用的构造函数是什么?

Jsf 为什么不是';t我的请求范围的支持bean';调用的构造函数是什么?,jsf,javabeans,icefaces,Jsf,Javabeans,Icefaces,我正在编写一个JSFWeb应用程序,并且我曾经对主支持bean请求的范围进行了限定。后来我将其更改为会话范围,现在我需要创建一个新的请求范围的支持bean。我遵循了我的第一个请求范围bean的格式,但我似乎根本无法调用构造函数。我已经使用JSF很长一段时间了,但我不明白为什么在我之前有一个请求范围的类工作正常时,它不会调用构造函数- 下面是我的支持bean类: package brian.canadaShipping; import java.io.Serializable; import

我正在编写一个JSFWeb应用程序,并且我曾经对主支持bean请求的范围进行了限定。后来我将其更改为会话范围,现在我需要创建一个新的请求范围的支持bean。我遵循了我的第一个请求范围bean的格式,但我似乎根本无法调用构造函数。我已经使用JSF很长一段时间了,但我不明白为什么在我之前有一个请求范围的类工作正常时,它不会调用构造函数-

下面是我的支持bean类:

package brian.canadaShipping;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean(name= "cpstcRequestBean")
@ViewScoped
public class CpstcRequestBean implements Serializable {

private static final long serialVersionUID = -5066913533772933899L;

public CpstcRequestBean()
{
    super();
    System.out.println("Hello, RequestBean!");
}

}
下面是我的faces-config.xml:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
    <managed-bean>
    <managed-bean-name>home</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcHomeBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
    <description>handles initialization of pseudo-permanent data</description>
    <managed-bean-name>cpstcApplicationBean</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcApplicationBean</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
    <managed-bean>
    <description>- intializes HomeBean values which shouldn't be session scoped</description>
    <managed-bean-name>cpstcRequestBean</managed-bean-name>
    <managed-bean-class>brian.canadaShipping.CpstcRequestBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

</faces-config>

家
brian.canadaShipping.cpstchHomeBean
一场
处理伪永久数据的初始化
CPSTApplication Bean
brian.canadaShipping.cpstapplicationbean
应用
-初始化不应在会话范围内的HomeBean值
cpstcRequestBean
brian.canadaShipping.CpstcRequestBean
要求

我运行的是IceFaces3.01框架,我相信它是基于JSF2.2的。我以前运行过一个请求范围的支持bean,但我无法让这个新类工作。如有任何建议,将不胜感激。提前谢谢

首先,您不必在构造函数中调用super(),其次,您的注释提供了所有配置,因此您不需要faces-config.xml中的任何内容。这甚至可以解决您的问题:)


另外,您是否正确地引用了请求bean?

这就是我如何设置原始会话bean的方法,我在没有faces配置内容的情况下尝试了它,但没有什么不同。我不确定正确引用请求bean是什么意思。框架应该在HTTP请求上自动调用请求bean(或者我的理解是这样的)。只有当有对它的引用时,即它实际上是在facelets视图中调用的,或者是从另一个bean调用的。噢!我现在将通过使用accessor/mutator方法生成一个变量并从我的xhtml文件中引用它来尝试一下。经验教训:总是在某个地方引用一个新的支持bean。注释要简单得多,而且不太XML化:)