重新部署服务器后ViewScoped

时间:2013-02-05 09:21:01

标签: jsf jetty session-scope view-scope

我在JSF 2.0中的简单表单上遇到了一些奇怪的问题。在这种形式中,我使用两个选择,如果选择第一个选择,则第二个应该使用新选项重新加载。我使用与Primefaces演示页面相同的机制:Primefaces demo page。我的bean是 @ViewScoped 。我还通过“mvn jetty:run”在jetty-maven插件上运行我的应用程序。到目前为止没问题。我的表格效果很好。

当我在服务器运行时更​​改某些内容时,会出现问题,jetty正在重新加载。之后,这两个选项不起作用 - 如果我选择第一个选项,第二个没有响应。我必须在Spring Security中通过注销清除所有会话,之后我的表单才会恢复工作。

当我将我的bean更改为 @SessionScoped 时,问题就消失了。 这工作正常吗?我不希望我的表单在会话范围内,我更喜欢ViewScoped。

1 个答案:

答案 0 :(得分:1)

尝试在bean中的postConstruct上检查你的上下文是否像这样回发。

@PostConstruct
public void init() {
    if (!FacesContext.getCurrentInstance().isPostback()) { 
        //Write your code here...
    }

如果jsf版本为2.0,请尝试接近web.xml上的部分状态保存,但使用此方法,您的应用程序可能需要更多内存分配

<context-param>
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
    <param-value>false</param-value>
</context-param>

祝你好运!