我有一个@ViewScoped
bean
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class MyBean implements Serializable
它在每次回发时重建(具有所有明显的后果,例如丢失初始属性)。这是怎么造成的,我该如何解决?如果无法解决是否有任何解决方法?
由于非技术原因,我无法将bean的范围更改为例如@SessionScoped
。
配置了以下状态保存方法:
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
我的pom.xml中的所有JSF相关文件
<!-- JSF Files -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>mojarra-jsf-impl</artifactId>
<version>2.0.0-b04</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.12</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2-FCS</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
答案 0 :(得分:2)
这没有意义。
datetime.now.replace(tzinfo=utc)
全部摆脱它们。它们彼此不相容。这可能会产生许多后果,其中视图范围确实破坏了。
要在Tomcat上使用Mojarra,只需获取单个org.glassfish:javax.faces
依赖项。
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>mojarra-jsf-impl</artifactId>
<version>2.0.0-b04</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.12</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2-FCS</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
Latest stable 2.2.x version目前是2.2.12。