struts2注解DMI跳转错误

有一个简单action如下:
public class TestAction extends ActionSupport {

@Action(value="testURL", results=@Result(name="success", location="ok.jsp"))
public String testURL() {
    return SUCCESS;
}

}

如果我通过/testURL.action访问,能够正常跳转到ok.jsp。
如果我使用/test!testURL.action会报错:
No result defined for action XXX and result success
不知道是否DMI不能通过方法级的注解进行跳转?

4个回答

比如说下面这个方法的注释:
[code="java"]
@Action(value="testURL", results=@Result(name="success", location="/WEB-INF/content/security/user-input.jsp"))
public String testURL() throws Exception {
return SUCCESS;
}
[/code]
所在类User的namespace为:security,那么以下两种方式
/security/user!testURL.action
/secuity/testURL.action
这两个url访问都是同样这个方法,但是区别是返回的SUCCESS,如果使用security/user!testURL.action访问,那么返回的不是方法级别上注解的success的location。如果是/secuity/testURL.action访问,那么返回的是这里配置的success对应的location

Dead_Knight
Dead_Knight struts2的注解既可以是类级别的,也可以是方法级别的,具体详细细节你可以参考: http://jackyrong.iteye.com/blog/1592269 http://blog.csdn.net/dingqinghu/article/details/6275787
接近 7 年之前 回复
qiankun123456
qiankun123456 是struts2有这样的特性吗,为什么DMI的不能做方法上面的跳转
接近 7 年之前 回复

[code="java"]

add.jsp
delete.jsp

public String add() {
return "add_success";
}

public String delete() {
return "delete_success";
}
[/code]

struts2当然支持方法级别的注解。你使用test!testURL.action与testURL.action访问,实际上访问的是namespace指定的web-inf/content/namespace/目录下的位置

public class TestAction extends ActionSupport {
@Action(value="testURL", results=@Result(name="success", location="ok.jsp"))

public String testURL() {
return SUCCESS;
}
}
1、既然你使用注解了 就没必要在struts.xml再配置一个 这样相当于两个不同的action 你在这配置的需要到此标签下找 而不是注解的 因为其实本质是属于不同的action

2、使用如下过滤器 去扫描注解的action即可
[quote]
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

actionPackages
cn.test

[/quote]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问