Struts2:重定向从其他站点到myApplication的问题

时间:2011-01-28 13:55:03

标签: tomcat struts2

我正在使用struts2.0,并且在tomcat 6.0上部署和测试了应用程序。

根据要求,我的应用程序( myApplication )必须从域名为 http:// abc.com

的PHP网站重定向

当此PHP站点将请求重定向到我的应用程序时,它会调用我的应用程序的 Action1 操作,进一步重定向到另一个操作 Action2 。但是在重定向时,它会将域名更改为应用程序的服务器IP( http:// applicationServerIP:8080 / myApplication / Action2 )。我的预期结果是 ( http://abc.com/myApplication/Action2 )。

sturts.xml中的操作配置为:

<action name="Action1" class="Action1">
    <result name="success" type="redirectAction">Action2</result>
</action>

<action name="Action2" class="Action2">
    <result name="success">/myJSP.jsp</result>
</action>

我们将非常感谢您解决此问题的任何帮助。

2 个答案:

答案 0 :(得分:0)

将以下标记放在/myJSP.jsp

<s:a>here</s:a> //I will write the current url as struts understands it.

将显示struts将传入的url作为确定服务器名称的福音。

因此,使用http://applicationServerIP:8080/myApplication/Action2调用您的应用程序只需将调用更改为http://abc.com/myApplication/Action2

如果这不是你想要的,你需要在到达struts2之前更改URL。一些容器内置了对此的支持或附加/插件(我只使用iptables)。

答案 1 :(得分:0)

你必须绕过struts-config,因为这只会重定向到你自己的应用程序,试试这个:

public ActionForward method(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response){
       response.sendRedirect("http://www.example.com");
       return null;
}