美文网首页
首次接触Struts2框架(二)

首次接触Struts2框架(二)

作者: Double_Z_ | 来源:发表于2017-03-16 21:05 被阅读0次

    这节主要讲讲Struts的核心配置及一些概念。

    1.1.  Struts.xml文件

    大家都知道这是其用于配置Action和请求对应关系的文件,其在文件夹中的位置在WEB-INF/classes目录下,盖文佳课陪Struts框架自动加载,而在编译时其位置通常为eclipse放在src下。

    这是一个典型的Struts的配置。<Struts>是根元素的配置,<constant>用于常量的配置。(也可在struts.properties文件中进行常量配置)。<package>配置包,其须指定name值,和其Action的类名class。

    1.2 Action的配置

    实现Action控制器的方式有三种

    (1) POJO的实现

                Action可以不继承特殊的类或者不实现任何特殊的接口,只用一个POJO(要有一个公共Java对象),只要你具有一部分getting/setting方法就可以称作POJO,在这个POJO中有一个公共的无参构造方法及一个execute()方法。

    (2) 实现Action接口

                 Action接口定义了Struts的Action处理器,用户在实现Action控制器的时,可以实现Struts提供的这个接口。

    (3) 继承ActionSupport类

    这个方法是最常用的方法,其本身就实现了Action接口,是Struts2中默认的Action接口的实现类。

    1.3 使用通配符

    为了减轻Struts.xml文件的负担,这是就可以使用通配映射符

    这样当科幻发送请求/userAction_login.action这样的请求的时候,<action>的值就陪设置成login。当客户端发送/userAction_register.action这样的请求时,<action>元素的name属性就被设置成register。另外对于<result>元素也可以进行通配符配置。

    1.4 动态方法调用。

    在Action的名字中使用感叹号来表示要调用的方法名称。格式:

    使用动态方法调用的方式将请求提交给Action是,表单中的每一个按钮提交事件都交给同一个Action,只是对应Action中的不同方法。这样的话,就只需要配置改Action,而不用去配置每个方法了。

    但是这一种方法官网上并不推荐,因为通过URL可以执行Action中的任意方法。

    2  Action访问Servlet API

    在Strut2中不能直接进行访问Servlet API ,但是其的解耦会带来很多好处,方便进行Action的单元测试。

    在Struts中访问Servlet API有三种方式。

    2.1 通过ActionContext类访问

    这里举例说明:

    ActionContext context=ActionContext.getContext();

    方一:context.getSession().put("username", user.getUsername());

    方二:context.put("username", user.getUsername());

    方三:context.getApplication().put("username",  user.getUsername());

    2.2  通过特定接口访问

    上面那种方不能直接获得Servlet API实例。所以Struts提供了一系列接口,像ServlerRequestAware(可直接访问web应用的HTTPServletRequest实例),ServlerResponseAware

    (可直接访问web应用的HTTPServletResponse实例)等等。

    2.3 通过servletActionContext访问

    为了直接访问Servlet API实例,Struts提供了servletActionContext类,其包含一些静态的方法以用于直接访问。

    综上,三种方式还是所选ActionContext,以避免与API耦合。

    相关文章

      网友评论

          本文标题:首次接触Struts2框架(二)

          本文链接:https://www.haomeiwen.com/subject/ndpjnttx.html