我正在编写一个JSF web应用程序,并且我曾经将主要支持bean设置为请求作用域。后来我将其更改为会话作用域,现在我需要创建一个新的请求作用域支持bean。我遵循了我的第一个请求作用域bean的格式,但是我似乎根本不能让构造函数调用。我使用JSF已经有很长一段时间了,但是我不明白为什么它不调用构造函数,而我之前有一个请求作用域的类工作得很好。:-S
下面是我的支持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>我在JSF3.01框架上运行,我相信它是基于ICEfaces 2.2的。我之前运行了一个请求作用域的支持bean,但是我不能让这个新类工作。任何建议都将不胜感激。提前感谢!
发布于 2012-10-02 06:14:41
首先,您不必在构造函数中调用super(),其次,您的注释提供了所有配置,因此您不需要faces-config.xml中的任何内容。这甚至可能解决您的问题:)
另外,您是否正确地引用了请求bean?
https://stackoverflow.com/questions/12681819
复制相似问题