我在JSF 2.0中的简单表单上遇到了一些奇怪的问题。在这种形式中,我使用两个选择,如果选择第一个选择,则第二个应该使用新选项重新加载。我使用与Primefaces演示页面相同的机制:Primefaces demo page。我的bean是 @ViewScoped 。我还通过“mvn jetty:run”在jetty-maven插件上运行我的应用程序。到目前为止没问题。我的表格效果很好。
当我在服务器运行时更改某些内容时,会出现问题,jetty正在重新加载。之后,这两个选项不起作用 - 如果我选择第一个选项,第二个没有响应。我必须在Spring Security中通过注销清除所有会话,之后我的表单才会恢复工作。
当我将我的bean更改为 @SessionScoped 时,问题就消失了。 这工作正常吗?我不希望我的表单在会话范围内,我更喜欢ViewScoped。
答案 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>
祝你好运!