我有一个登录操作,在成功执行后重定向到上一页(我将上一页存储在我的会话中,以便稍后可以获取).在Struts2中,我可以找到两种方法来执行此重定向:
${previousAction.requestURL}
在这个例子中,将调用getPreviousAction().getRequestURL()方法(这是一个自制方法,它不是struts2),这将按预期返回上一页的url,例如:
somenamespace/index.action
还有另一种重定向:
${previousAction.name}
/${previousAction.namespace}
我想使用这个redirectaction结果类型,因为它更干净.但是,当查询参数是url的一部分时,我遇到了问题.例如:
somenamespace/index.action?name=john&age=50
我知道我可以在我的struts.xml中添加这些硬编码的params,但问题是我的登录操作应该重定向到以前调用的任何操作,而且我事先不知道先前操作有哪些查询参数.这与您正确知道要重定向到哪个操作的典型用例不同
我发现一个非常糟糕的解决方案是添加每个param(在struts.xml中我所有动作的所有参数的集合),然后使用选项:
true