博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Annotation(四)——Struts2注解开发
阅读量:5057 次
发布时间:2019-06-12

本文共 2709 字,大约阅读时间需要 9 分钟。

  HibernateSpring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧。Struts2主要解决了从JSPAction上的流程管理,如何进行Uriaction类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置:

/jsp/org/index.jsp

感觉Struts2的配置还是比较麻烦的,需要我们配置每一个action中的每一个方法进行配置,当然了,这里也可以通过通配符*的方式进行简化。但是每个类都需要遵循规则。这里看一下Struts2注解的开发吧!

一,引入支持Struts2支持注解开发jar包:

  struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包)

二,Struts2使用注解开发需要遵循一些规范:

  1Action要必须继承ActionSupport父类;

  2,Action所在的包名必须以  .action 结尾。

三,action中常用的注解:

     1@ParentPackage:对应xml配置文件中的package的父包,一般需要继承struts-default。

   2,@Namespace:对应配置文件中的nameSpace,命名空间。

   3,写在方法前边的注解:

  • @Action,这个注解对应<action>节点
    • value()表示action的请求名称,也就是<action>节点中的name属性;
    • results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result
    • interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器; 
    • exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器

    4,看一下action中最常用的results中单个result注解的配置吧:

  • @Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
    • name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
    • location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
    • type(),是action的类型,比如redirect,不指定情况下,框架默认的是dispatcher

    这些注解基本上就可以完成我们的功能了,通过这样注解开发,可以代替配置xml的编写。下边我们来看一个使用注解开发的action的实例:

@Controller//控制层的Spring注解@Scope("prototype")//支持多例@ParentPackage("struts-default")  //表示继承的父包@Namespace(value="/user") //表示当前Action所在命名空间public class LoginAction extends ActionSupport{        @Resource    private User user; //使用域驱动模式接收表单参数    @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";        }    }}

 综上,为Struts2框架中注解的开发。三大框架都利用注解开发,和配置文件开发,效率会大大提升的。各种框架,jar包等新的版本现在都是支持注解开发的,不断的学习,不断的优化,不断提高效率,注解开发利弊并存着,我们要懂的扬长避短,让每个框架,每种思想的优点都来为我们开发即可。

转载于:https://www.cnblogs.com/koal/p/4800778.html

你可能感兴趣的文章
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
linux基础-命令
查看>>
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>
浅谈C++底层机制
查看>>
STL——配接器、常用算法使用
查看>>
第9课 uart
查看>>
Range和xrange的区别
查看>>
BZOJ 1010 [HNOI2008]玩具装箱 (斜率优化DP)
查看>>