对于Struts2页面跳转通配符的问题

    <action name="Seller!*" class="com.kcan.action.SellerAction" method="{1}">
            <result>/seller/{1}.jsp</result>

    </action>

对于这个配置, 我认为应该是没问题的, 比如Seller!sellerList, 应该会自动访问sellerList方法, 然后跳转到sellerList.jsp

但事实上一直报错。 错误信息是:

HTTP Status 404 - /seller/.jsp

type Status report

message /seller/.jsp

description The requested resource (/seller/.jsp) is not available.

这里, 通配符对于method生效了, 可以正常的访问到sellerList方法, 可川对于jsp的设置并没有生效。 为什么呢? 为什么拿不到?
[code="java"]
public String sellerList() {
sellerList = sellerService.getSellerList(0, Constant.PAGE_SIZE);
return SUCCESS;
}[/code]

[code="java"]

/seller/{1}.jsp

[/code]
出现问题的原因是你的通配符里面出现了“!”,这种方式和struts默认的匹配方式重叠了。所以,如果你只是想使用通配符的方式匹配,又要包含“!”,可以设置
[code="java"]

[/code]
详细内容参考:[url]https://cwiki.apache.org/WW/action-configuration.html#ActionConfiguration-WildcardDefault[/url]中的红色重点部分。

我感觉也是拿得到的~

很少用struts2

但是这样采用通配符配置的话,感觉不好,如果一个需要ajax请求的操作需要放到次action中那不是有问题了.

一个一个的去写吧

或者自己专门写点东西来处理一下


/seller/{1}.jsp

对于这个配置, 我认为应该是没问题的, 比如Seller!sellerList, 应该会自动访问sellerList方法, 然后跳转到sellerList.jsp

修改上面的配置

/seller/{2}.jsp

访问路径:seller_sellerList.jsp就可以了

这段代码理论上可以拿到,
结合本例通配符的形式为:*_*或者Seller_*,至于!没试过,一般用?和*作为通配符。