我正在使用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>
我们将非常感谢您解决此问题的任何帮助。
答案 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;
}