0

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

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

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

4

1 回答 1

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>

祝你好运!

于 2013-02-05T14:47:45.403 回答