如何在Struts 2中进行动态URL重定向?

Sie*_*tse 27 java url redirect struts2

我正在尝试将我的Struts2应用程序重定向到生成的URL.在这种情况下,我希望URL使用当前日期或我在数据库中查找的日期.因此/section/document变得/section/document/2008-10-06

最好的方法是什么?

Joh*_*Wey 62

我们是这样做的:

在Struts.xml中,有一个动态结果,例如:

<result name="redirect" type="redirect">${url}</result>
Run Code Online (Sandbox Code Playgroud)

在行动中:

private String url;

public String getUrl()
{
 return url;
}

public String execute()
{
 [other stuff to setup your date]
 url = "/section/document" + date;
 return "redirect";
}
Run Code Online (Sandbox Code Playgroud)

您实际上可以使用相同的技术使用OGNL为struts.xml中的任何变量设置动态值.我们已经创建了各种动态结果,包括RESTful链接等.酷的东西.

  • 您可以尝试全局结果.我还没有对动态变量进行过实验,但是,只要动作返回结果,我就没有看到任何不起作用的理由. (2认同)

小智 14

也可以使用annotations和Convention插件来避免struts.xml中的重复配置:

@Result(location="${url}", type="redirect")
Run Code Online (Sandbox Code Playgroud)

$ {url}表示"使用getUrl方法的值"