Struts2 -将重定向设置为false



我正在使用Struts2框架(带注释),需要重定向帮助。

步骤1:动作类扩展ActionSupport,在执行方法中添加动作消息。操作成功后,将位置设置为JSP - common_popup.jsp

步骤2:在JSP中检查hasActionMessages()并设置带有操作消息的对话框。

ISSUE: a.在重定向操作成功时,操作消息集丢失。b.由于重定向,common_popup.jsp在一个新的URL中打开。

是否有一种方法将重定向设置为FALSE ?这样我就保留了向action类提交请求的页面,并且common_popup.jsp作为弹出对话框出现在同一页面的顶部。

ACTION类:

public class Settings extends ActionSupport {
    @Action(value="settings", 
            results = { @Result (name="success", location="common_popup.jsp"),
                @Result (name="failure", location="${actionUrl}")
    })
    @Override
    public String execute()
    {
        try {
        addActionMessage(" ITS SETTINGS TIME !! ");
        }
        catch (Exception exp )
        {
            addActionError(" Failed to update the data base configuration. Please retry. ");
            this.actionUrl = "main.jsp?settings=true";
            return "failure";
        }

        return "success";
    }
}
JSP代码- common_popup.jsp:
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="stylesheets/jquery-ui.css">
        <link rel="stylesheet" type="text/css" href="stylesheets/loader.css">
        <script src="scripts/jquery-1.11.0.min.js" type="text/javascript"></script>
        <script src="scripts/jquery-ui-1.10.4.js" type="text/javascript"></script>
        <script src="scripts/loader.js" type="text/javascript"></script>    
    </head>
    <body>
         <s:if test="hasActionMessages()">
            <div id="actionMessage" class="ui-dialog" style="display:none" >
                <s:actionerror/>
            </div>
            <script>
                $( "#actionMessage" ).css("display","");
                $( "#actionMessage" ).dialog();
            </script>
        </s:if>
    </body>
</html>

结果results = { @Result (name="success", location="common_popup.jsp")正在将servlet dispatcher转发到从结果位置构建的URL。

这也是已知的默认dispatcher结果类型。因此,在您的代码中不是重定向,而是分派或转发由location属性指定的JSP页面。

所以,代码中没有显示重定向。如果是这样,并且您希望在操作之间保存操作消息(您不应该重定向到JSP),您可以使用messageStore拦截器。

在链接页面上找到这个拦截器的示例,或者阅读我的答案以找到更详细的示例解释

最新更新