有一个简单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不能通过方法级的注解进行跳转?
比如说下面这个方法的注释:
[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
[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]