Java 在PRG模式中,如何删除刷新成功页面上的ActionMessage
为了避免表单重新提交,我使用了POST-Redirect-GET模式,它工作得很好。现在在我的注册页面(成功页面)上显示操作消息“Review Inserted successfully!”。当用户刷新页面时,我想删除此消息 JSP页面上的我的代码: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
关于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:如果你有其他问题,请发布一个新问题。但这与当前问题有关。它会做什么?它可以避免表单重新提交,或者在刷新页面时删除成功消息?我曾经用它来防止双重表单提交和双重消息,但从来没有用平铺。试试看,希望能有所帮助。