我有一个使用多个会话Bean运行的JSF 2.1(MyFaces)应用程序(所有bean都是会话bean)。 超时在web.xml中定义如下:
<session-config>
<session-timeout>3600</session-timeout>
</session-config>
这意味着1小时。
问题是在正常使用时我得到No Saved View...
例外:
SEVERE: An exception occurred
javax.faces.application.ViewExpiredException: /mainPanel.jsfNo saved view state could be found for the view identifier: /mainPanel.jsf
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
目前,在faces-config.xml中定义了bean,以便与Eclipse的ide。
兼容我不确定是什么导致这种情况,它绝对不会超时。 任何想法可能是什么问题?
如果我能提供任何进一步的信息,请告诉我..
谢谢!
P.S - 没有jsf-2.1
标签
更新1 我认为60意味着1分钟! :-)这可能是问题所在。如果结果那么我会关闭这个问题
更新2 多数民众赞成不是......更多信息可能会有所帮助:
/mainPanel.jsf
,但这实际上是使用<ui:include>
Jquery
代码:
$(document).ready(function() {
$("#someTable tr:not(:first)").click(function(event) {
var someValue = $(this).find("input:hidden").val();
$('#currently_selected').val(someValue );
$('#currently_selected').change();
});
});
JSF 2
代码:
<h:form prependId="false" class="hide">
<h:inputText value="#{someBean.someBeanValue}">
<f:ajax event="change" listener="#{someBean.someBeanValueChanged}" render=":anotherForm"
onevent="ifCompleteSetWindowHash" />
</h:inputText>
</h:form>
答案 0 :(得分:1)
在第一个视图中,它似乎是对javax.faces.ViewState隐藏字段的一些副作用。如果此字段被写入,则将抛出ViewExpiredException。尝试使用其他不同的javascript代码执行相同操作。
无论如何,它与您的session-config参数无关。此处提供的信息不足以复制它。如果之前的建议无法解决您的问题,请在MyFaces Issue Tracker上创建问题并附上示例。通过这种方式,你可以解决它。
答案 1 :(得分:0)
我相信$
符号是JSF 中EL表达式的保留字符(编辑:如下所述,仅'$'不是保留的,但第三方组件库可能会使用各种javascript库这可能与jQuery有命名冲突。尝试将jQuery函数调用更改为显式的长表单名称,看看是否会产生影响。
EG。而不是......
$(document).ready(function() {
这样做......
jQuery(document).ready(function() {