Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在PRG模式中,如何删除刷新成功页面上的ActionMessage_Java_Html_Jsp_Struts2_Post Redirect Get - Fatal编程技术网

Java 在PRG模式中,如何删除刷新成功页面上的ActionMessage

Java 在PRG模式中,如何删除刷新成功页面上的ActionMessage,java,html,jsp,struts2,post-redirect-get,Java,Html,Jsp,Struts2,Post Redirect Get,为了避免表单重新提交,我使用了POST-Redirect-GET模式,它工作得很好。现在在我的注册页面(成功页面)上显示操作消息“Review Inserted successfully!”。当用户刷新页面时,我想删除此消息 JSP页面上的我的代码: 关于struts.xml: InsertReviewOne display.writeReview.page display.writeReview.page 行动类: 公共字符串insertReviewOne(){ addActionMe

为了避免表单重新提交,我使用了POST-Redirect-GET模式,它工作得很好。现在在我的注册页面(成功页面)上显示操作消息“Review Inserted successfully!”。当用户刷新页面时,我想删除此消息

JSP页面上的我的代码:


关于struts.xml:


InsertReviewOne
display.writeReview.page
display.writeReview.page
行动类:

公共字符串insertReviewOne(){
addActionMessage(“写评论成功”);
返回“成功”;
}
编辑:

在执行Aleksandr M建议的答案后,我遇到了以下问题:


复习
刷新上述代码中的页面后,businessName将被删除且不显示。 任何帮助都将不胜感激。

用于将操作消息存储在
insertReview
中,并在
InsertReviewOne
操作中检索它。 返回
insertreviewOne
结果时,在
insertReview
方法中添加操作消息

还可以使用
重定向操作
结果重定向到操作,而不是
重定向

<action name="insertReview" class = "com.tenkinfo.streamlinedmapnsav.ui.action.WriteReviewAction" method="insertReview">
  <interceptor-ref name="store">
    <param name="operationMode">STORE</param>
  </interceptor-ref>
  <interceptor-ref name="defaultStack" />

  <result name="insertReviewDone" type="redirectAction">insertReviewDone</result>
  <result name="input" type="tiles">display.writeReview.page</result>
</action>

<action name="insertReviewDone" class = "com.tenkinfo.streamlinedmapnsav.ui.action.WriteReviewAction" method="insertReviewDone" >
  <interceptor-ref name="store">
    <param name="operationMode">RETRIEVE</param>
  </interceptor-ref>
  <interceptor-ref name="defaultStack" />

  <result name="success" type="tiles">display.writeReview.page</result>
</action>

贮藏
InsertReviewOne
display.writeReview.page
检索
display.writeReview.page

另一种方法是将其放置在适当的位置,这种方法不如@AleksandrM提出的(好)方法技术性强,但适用于所有框架,而不仅仅是Struts2

<script>
    $(document).ready(function() {
        window.history.pushState("","", location.href);
    });
</script>

$(文档).ready(函数(){
window.history.pushState(“,”,location.href);
});
部分中。不过,它无法在没有HTML5功能的旧浏览器上运行


注意:jQuery部分不是必需的,它只是用于确保在加载页面后运行,您可以在没有它的情况下运行HTML5
pushState()

为什么要进行否决+1来抵消它。例如,将它存储在会话中。太好了!这就是我一直在寻找的。谢谢!它工作得很好。但我有一个新问题。编辑我的问题并放在那里。我是一个新手,所以请给我一些建议。@user2674752:如果你有其他问题,请发布一个新问题。但这与当前问题有关。它会做什么?它可以避免表单重新提交,或者在刷新页面时删除成功消息?我曾经用它来防止双重表单提交和双重消息,但从来没有用平铺。试试看,希望能有所帮助。