Java 基于querystring而不是路径名映射struts2操作

Java 基于querystring而不是路径名映射struts2操作,java,struts2,mapping,action,dispatcher,Java,Struts2,Mapping,Action,Dispatcher,有没有办法配置struts 2,以便调度器使用querystring映射要调用的操作 例如,在下面的链接中,我想调用ActionBlah,而不是ActionFoo 谢谢。我认为任何默认映射器都不可能做到这一点 创建一个为检查someparameter值的foo操作配置的拦截器也没那么糟糕,链接或重定向到您的布拉操作。+1杰里米:这可以发挥神奇的作用,否则如果您不想创建操作,只需创建一种调度程序操作,它将根据查询字符串的值将您的请求调度到特定操作 例如 Foo action execute();

有没有办法配置struts 2,以便调度器使用querystring映射要调用的操作

例如,在下面的链接中,我想调用ActionBlah,而不是ActionFoo


谢谢。

我认为任何默认映射器都不可能做到这一点


创建一个为检查
someparameter
值的
foo
操作配置的
拦截器也没那么糟糕,链接或重定向到您的
布拉
操作。

+1杰里米:这可以发挥神奇的作用,否则如果您不想创建操作,只需创建一种调度程序操作,它将根据查询字符串的值将您的请求调度到特定操作

例如

Foo action execute();

if (querystring="test") {
    setActionName("Test");
    return "next";
}
基于这些控制字符串,您可以将请求转发到特定操作

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

谢谢杰里米。由于无法使用默认映射器,也许我会尝试创建自己的映射器,扩展DefaultActionMapper。我会给你们加分,但我的声誉仍然低于15:(