convention可以少写很多不必要的代码。
result:
不用再为写很多的result标签或者annotation烦恼了,convention实现result自动化约定。
首先看一个例子,一个action定义为:
com.kangzye.web.actions.mode1.MyappAction extends ActionSupport{
public String fun(){return "abc";}
}
没有加任何注解的情况下,可以通过url访问到 fun 方法:http://localhost:8080/testproj/mode1/myapp!fun.do
该方法返回 “abc”,即该url访问后跳转到的 jsp 默认为: /WEB-INF/content/mode1/myapp-abc.jsp
也就是,默认资源都是以 /WEB-INF/content/ 为参照计算的。可以在struts.xml中通过常量声明方式修改:
<constant name="struts.convention.result.path" value="/WEB-INF/jsp"/>
如此,刚才的方法则跳转到: /WEB-INF/jsp/mode1/myapp-abc.jsp 。
有时候找不到资源时,回报错误:No result definded for ...... ,此时,得注意并非一定需要定义一个 result 。