java - Struts2 - 将重定向设置为 false

标签 java jquery jsp struts2

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

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

第 2 步:在 JSP 中检查 hasActionMessages() 并设置包含操作消息的对话框。

问题:由于重定向而导致操作成功时,操作消息集将丢失。 b.由于重定向,common_popup.jsp 将在新 URL 中打开。

有没有办法将重定向设置为 FALSE ?这样我就可以保留向操作类提交请求的页面,并且 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结果类型。因此,在您的代码中,您不是重定向,而是分派(dispatch)或转发由location 属性指定的JSP 页面。

因此,您的代码中没有显示任何内容是重定向。如果确实如此,并且您想在操作之间保存操作消息(您不应该重定向到 JSP),您可以使用 messageStore interceptor .

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

关于java - Struts2 - 将重定向设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22388189/

相关文章:

javascript - Bootstrap 警报可关闭未显示在警报 div 中

javascript - 我需要一个更好的 jQuery 选择器来减少 children() 调用

java - spring mvc(jsp)添加css不带xml配置

java - 用于与 JSP/Java 集成的文件浏览器的 Prototype/Scriptaculous Javascript 插件?

java - 返回时泛型如何工作?

java - 目前是否有 Rational Team Concert 的替代品?

java - 通过 mockito 创建一个模拟列表

jQuery:将内容添加到div末尾

Java 库规范

javascript - 服务器端Cookies的访问