一. 基础配置
1. ParentPackage注解的参数
参数
|
类型
|
是否必需
|
默认值
|
描述
|
value
|
String
|
是
|
无
|
指定要继承的父包
|
如果注解中只有一个名为value的参数,或其他参数都有默认值,那么在为value参数设值时可以忽略value和等号(=)。
例:
@ParentPackage(value="struts-default")
@ParentPackage("struts-default")
2. Namespace注解的参数
参数
|
类型
|
是否必需
|
默认值
|
描述
|
value
|
String
|
是
|
无
|
指定action所属的名称空间
|
例:
@Namespace("/secure")
说明:命名空间取名时,以斜杠(/)开头。
3. Result注解的参数
参数
|
类型
|
是否必需
|
默认值
|
描述
|
name
|
String
|
否
|
Action.SUCCESS
|
指定result的逻辑名,即结果代码
|
value
|
String
|
是
|
无
|
指定result对应的资源的URL
|
type
|
Class
|
否
|
NullResult.class
|
指定result的类型
|
param
|
String[ ]
|
否
|
{ }
|
为result传递参数,格式为:{key1,value1,key2,value2}
|
例:
@Result("/success.jsp")
@Result(name="register",value="/register.jsp",param={},type=ServletDispatcherResult.class)
该例中没有使用name和type参数,所以它们为默认值。
说明:type参数的默认值是NullResult.class,如果type参数是NullResult.class,则struts2框架在解析result的配置时,使用默认的结果类型(ServletDispatcherResult)来替换NullResult。
注意:type是类,不是字符串,因此不需要使用””将该注解参数值括起来。
4. Results注解的参数
配置多个result。该注解只有一个参数value。使用时候可以忽略value和等号(=)。
参数
|
类型
|
是否必需
|
默认值
|
描述
|
value
|
Result[ ]
|
是
|
无
|
为action定义一组result映射
|
例:
@Results({
@Result(name="input",value="/input.jsp"),
@Result(name="error",value="/error.jsp",type=ServletDispatcherResult.class)
})
在上面的例子中定义了两个result映射。一个逻辑名是input,资源位置是/input.jsp;另一个逻辑名是error,资源位置是/error.jsp.
二. 使用注解配置Action的注意事项
① 与action配置相关的4个注解只能用在类级别上。
② 需要在web.xml文件中为FilterDispatcher过滤器设置actionPackages参数,指定包含了Action类(类使用了注解)的包的列表,多个包之间以逗号(,)分隔。这些包和它们的子包都将被扫描,在指定包中的所有实现了Action接口的类,或以“Action”结尾的类都将被检测。后者允许我们编写POJO Action类,而不需要实现Action接口。
③ 包名、名称空间名和action名的产生方式如下:
包名: Action类所在的包作为action的包名。
命名空间:除了使用Namespace注解指定名称空间外,也可以通过子包名来产生名称空间。
例:Action类所在的包为com.xxx.action,如果actionPackages参数指定的包是com.xxx,那么“/action”将作为名称空间的名字。
action名:通过Action的类名来产生action的名字。若类名以“Action”结尾,那么类名中的“Action”将被去掉,剩余部分将首字母变为小写作为action的名字。
例:action的类名是LoginAction,那么产生的action的名字是login.
例:若Action的完整类名是com.xxx.action.LoginAction。
则,
actionPackages参数的配置为com.xxx
action的包名为com.xxx.action
action所属的命名空间是/action
action的名字是login
可以通过http://localhost:8080/myapp/action/login.action来访问LoginAction。
④如果你想让你的包继承struts-default包,无须使用ParentPackage注解,在框架内部,会自动让你的包继承struts-default包。
三. 使用注解配置Action实例
一个Action和三个页面。三个页面配置为Result映射。
实例开发步骤如下:
第一步:编写success.jsp,input.jsp,error.jsp页面。
第二步:编写Action类
@Namespace("/test")
@Result("/success.jsp")
@Result({
@Result(name="input",value="/input.jsp"),
@Result(name="error",value="/error.jsp".type=ServletDispatcherResult.class)
})
public class AnnotationAction implementsAction{
public String execute() throws Exception{
return SUCCESS;
}
public String input() throws Exception{
return INPUT;
}
public String error() throws Exception{
return ERROR;
}
}
第三步:配置web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class >
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.xxx.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</ filter-name>
<url-pattern>/*</ url-pattern >
</ filter-mapping>
第四步:测试
http://localhost:8080/myapp/test.annotation.action
http://localhost:8080/myapp/test.annotation!input.action
http://localhost:8080/myapp/test.annotation!error.action
分享到:
相关推荐
Struts 2使用注解配置Action,不配置struts.xml,通过注解直接配置action
"Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...
都被它莫名其妙的错误搞的郁闷,而网上关于这方面的东西大多都是基于struts2.0版本的,对我们现在用的2.1以上的版本不起什么作用,所以特整理出一份文档,里面详细说明了怎样用注解出配置struts2的action,...
主要介绍了struts2中使用注解配置Action方法详解,涉及一个示例,具有一定参考价值,需要的朋友可以了解下。
使用注解配置Action示例。里面已经包涵java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils错误异常的解决方案。
第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...
struts2 使用注解现在零配置不需要在使用struts.xml配置文件。 struts2 注解实例。可以直接跑
ssh2注解配置,全部是注解配置,struts2和hibernate3和spring2.5全部是注解配置,,访问路径为http://localhost:8080/mytest/student/findAll.action
struts2将请求在Action中封装为Map并将配置文件放到web-info中还可以自定义配置文件位置就是不将struts.xml放到src下但还是不如spring mvc 的封装来得方便
《Struts 2实战》结合实例介绍了Struts 2框架,主要内容包括Action、Result、Interceptor等框架组件,基于注解的配置选项等新特征,Struts 2插件 FreeMarker,如何从Struts 1和WebWork 2迁移到Struts 2,Ajax标签、...
而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定...
使用struts2基于注解(零配置)实现的文件上传与下载的代码,可以正常运行
《Struts 2实战》结合实例介绍了Struts 2框架,主要内容包括Action、Result、Interceptor等框架组件,基于注解的配置选项等新特征,Struts 2插件 FreeMarker,如何从Struts 1和WebWork 2迁移到Struts 2,Ajax标签、...
从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。• 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名...
spring管理struts的action的代码 从类路径下加载spring的配置文件, 多个配置文件可以用逗号和空格区分 * classpath: 关键字特指类路径下加载
使用的是注解的方式完成的,因为注解的方式可以减少一些配置文件,比较方便的。 【特别强调】一定要清楚如何调试项目,因为自己的环境和下载的资源的环境可能不一样,需要修改配置文件或是其他才能正常运行。...
十一、注解配置 59 十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方...
Struts2直接使用注解的详细配置action 去掉Struts.xml 省去多余的代码 让代码更直观
b 在struts.xml中添加action,使用通配符的方式 , 注意这里和单独struts2不同的地方: class属性指向的是bean 的 id ,这里我们配置bean采用spring ioc注解的方式, 所以默认的bean的id 为 类名(首字母小写) ...