【问题标题】:Bean method getting invoked randomly from action property从动作属性随机调用 Bean 方法
【发布时间】:2011-10-14 00:26:08
【问题描述】:

我的 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,页面范围是会话。

【问题讨论】:

  • 有人可以提供一些帮助吗?或@BalusC

标签: java jsp jsf javabeans


【解决方案1】:

我认为您的问题是窗口在提交之前关闭,您可以在提交完成后关闭窗口,您可以在您的 bean 上放置一个变量并在页面加载时在 javascript 上读取它

<script>

if( ${bean.canClose} ) {
 self.close()
}
</script>

所以在调用您的操作方法后,页面会重新加载并自行关闭

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 2012-09-15
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多