基于查询字符串而不是路径名映射struts2操作

时间:2011-01-06 20:45:17

标签: java struts2 mapping action dispatcher

有没有办法配置struts 2,以便调度程序使用查询字符串映射要调用的操作?

例如,在下面的链接中,我想调用动作blah,而不是动作foo。

http://domain:port/myapp/foo.do?someparameter=blah

感谢。

2 个答案:

答案 0 :(得分:4)

我认为任何默认的映射器都不可能。

创建为Interceptor操作配置的foo,检查someparameter的值,并链接或重定向到您的{{1},这并不是一件坏事。行动。

答案 1 :(得分:2)

+1 Jeremy:如果您不想创建一个动作,只需创建一个有效的调度程序操作,根据查询字符串的值将您的请求分派给某个操作

例如

Foo action execute();

if (querystring="test") {
    setActionName("Test");
    return "next";
}

根据这些控制字符串,您可以将请求转发给某个操作。

<result name="next" type="redirectAction">${actionName}</result>