Struts2注解

  1. 注解

使用注解可以用来替换struts.xml配置文件,以提高我们的开发效率。

建议:注解的使用是建立在对struts.xml配置文件十分熟练的基础上。

注:单独使用struts2框架时注解,不需要配置注解扫描。

    1. Struts2使用注解开发需要遵循一些规范
  1. Action要必须继承ActionSupport父类
  2. Action所在的包名必须以  .action 结尾

 

    1. 引入依赖(导包

<!--引入struts注解依赖-->

<dependency>

    <groupId>org.apache.struts</groupId>

    <artifactId>struts2-convention-plugin</artifactId>

    <version>2.5.10</version>

</dependency>

    1. 通过配置文件学习对应的注解

注解

代替

示例

@Namespace

<package>中的namespace属性

用于指定名称空间,一般为“/”。

@Namespace(value=/user)

简写:@Namespace(/user)

public Class UserAction{}

注:用在Action类上

@ParentPackage

<package>中的extends属性

用于指定父包,一般为struts-default

@ParentPackage(value=struts-default)

简写:@ParentPackage(struts-default)

public Class UserAction{}

注:用在Action类上

@Action

替代<action>元素

value:指定访问路径,替代name属性

results:指定局部结果,替代result属性

@Action(value="/add", results={})

public String execute() {}

注:用在Action类中的方法上

@Result

替代<result>元素

name:指定结果码,替代name属性

location:指定返回视图

Type:指定跳转类型

@Action(value="add", results={

@Result(name="success",

location="/index.jsp"),

@Result(name="input",

location="/add.jsp")

})

注:用在@Action注解的results中

@interceptorRefs

表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器

 

@exceptionMappings

这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器

 

 

 

注解案例:

************************************************************

struts.xml配置:

<package extends=struts-default namespace=/user>

************************************************************

@ParentPackage("struts-default")

@Controller                  //控制层的Spring注解

@Scope("prototype")         //支持多例

@Namespace(value="/user")  //表示当前Action所在命名空间

publilc class TestAction extends ActionSupport{

 

@Resource

private User user;    //使用域驱动模式接收表单参数

 

************************************************************

struts.xml配置:

<action name="addUser" class="com.zking.Test" method="addUser">

    <result name="success">/index.jsp</result>

    <result name="input">/error.jsp</result>

</action>

************************************************************

@Action(value="addUser", results={

    @Result(name="success", location="/index.jsp", type=redirect),

    @Result(name="input", location="/error.jsp")

})

public String addUser(){

……

return SUCCESS;

}

 

@Action(value="delUserById", results={

    @Result(name="success", location="/index.jsp", type=redirect)

})

public String delUserById(){

……

return SUCCESS;

}

 

@Action(    //表示请求的Action及处理方法

value="login",      //表示action的请求名称

results={     //表示结果跳转

@Result(name="success",location="/success.jsp",type="redirect"),

@Result(name="login",location="/login.jsp",type="redirect"),

@Result(name="error",location="/error.jsp",type="redirect")

},

interceptorRefs={       //表示拦截器引用

@InterceptorRef("defaultStack"),

@InterceptorRef("timer")

},

exceptionMappings={    //映射映射声明

@ExceptionMapping(exception="java.lang.Exception",result="error")

}

)

public String login() throws Exception {

int i = 1/0 ;

 

if ("admin".equals(user.getUsercode()) && "admin".equals(user.getUserpswd())) {

 

Map session = ActionContext.getContext().getSession();

session.put("session_user", user);

 

return "success";

} else {

return "login";

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值