旧版本使用注解
开始使用注解使用的是 strutscorejar
这个时候的过滤器是orgapachestrutsdispatcherFilterDispatcher
可以在webxml里面指定action的祖包actionPackages
[html] <initparam>
<paramname>actionPackages</paramname>
<paramvalue>manning</paramvalue>
</initparam>
<initparam>
<paramname>actionPackages</paramname>
<paramvalue>manning</paramvalue>
</initparam>
被注解的内在如上manning的包下 类名字为 TestAction 或者 Test extends ActionSupport 即可被注解为Struts的Action
内容可以为空 空跳转只需在类名上面加 Result(value=/testjsp)即可如下
[java] package manningchapterTwo;
import ornfigResult;
import orgapachestrutsdispatcherServletDispatcherResult;
import comopensymphonyxworkActionSupport;
@Result( value=/chapterTwo/AnnotatedNameCollectorjsp )
public class AnnotatedNameCollector extends ActionSupport {
}
package manningchapterTwo;
import ornfigResult;
import orgapachestrutsdispatcherServletDispatcherResult;
import comopensymphonyxworkActionSupport;
@Result( value=/chapterTwo/AnnotatedNameCollectorjsp )
public class AnnotatedNameCollector extends ActionSupport {
}或者
[java]
package manningchapterTwo;
import ornfigResult;
import orgapachestrutsdispatcherServletDispatcherResult;
@Result(name=SUCCESS value=/chapterTwo/HelloWorldjsp )
public class AnnotatedHelloWorldAction {
public String execute() {
return SUCCESS;
}
}
package manningchapterTwo;
import ornfigResult;
import orgapachestrutsdispatcherServletDispatcherResult;
@Result(name=SUCCESS value=/chapterTwo/HelloWorldjsp )
public class AnnotatedHelloWorldAction {
public String execute() {
return SUCCESS;
}
}
如上部分摘自《StrutsInAction》
新版本使用注解
但是现在注解及过滤器已经更新了高版本使用 strutscorejar
StrutsPrepareAndExecuteFilter 在原过滤器包的ng包下面
我们实现注解还需要 strutsconventionpluginjar
可以在strutsxml或strutsproperties里设置常量来设置Struts框架读取哪些类为Action
nventionactionpackages可以使用的Action的祖包默认为没有 可以读取这个包及其子包的所有头上标记了【 @Action 】 的类
nventionpackagelocators可以使用的Action的上级包默认为【actionactionsstrutsstruts】这样就可以读取所有在包中的所有头上注册了【@Action】的类注意设置的action应为这个包的最后一级包 nventionactionsuffixAction类类名的后缀默认为Action
我们使用时砍掉后缀如 TestAction >访问 testaction
@Result参数变化 为 @Result(name = SUCCESS location = /mainjsp) name 默认为SUCCESS
多返回@Results( { @Result(name = success location = /mainjsp) @Result(name = error location = /errorjsp) })
可以加包 @ParentPackage(strutsdefault) 空间 @Namespace(/test) 默认为excute方法在类名上定义@Action时 其他可以定义@Action在方法上
@Action(value = add results = { @Result(name = success location = /indexjsp) })
public String add() throws Exception {
return SUCCESS;
}