我的JSP中有以下内容,这是一个从JSF页面调用的弹出窗口。
<h:commandButton id="cmd" value="Click"
onclick="document.getElementById('frm_name:hiddenInput').value=test();"
action="#{bean.actionClick}" />
和javascript的test()方法我有
opener.focus();
opener.location.href = opener.location;
self.close();
return hidValues;
我面临的问题是从JSP弹出窗口中选择值时,每次都不会调用辅助bean的操作方法,有时它会被调用,有时它不会被调用。
我怀疑这是否是由于缓存所以我在JSP弹出窗口中添加了以下内容
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
然而,即使在添加不缓存JSP页面之后,仍然没有调用bean的action方法,就像我之前提到的那样,有时它会被调用,有时候不会被调用。
我该如何解决这个问题?
我的JSF版本1.1,页面范围是会话。
答案 0 :(得分:0)
我认为你的问题是窗口在提交之前关闭,你可以在提交完成后关闭窗口,你可以在你的bean上放一个变量并在你的页面加载时在javascript上读取它
<script>
if( ${bean.canClose} ) {
self.close()
}
</script>
因此,在调用您的操作方法后,页面会重新加载并自行关闭