Struts2基础详解

Struts2

版本

  • 登录struts的官网,然后我们就能看到如下的内容。选择相应的安装包进行下载

这里写图片描述

Struts2应用开发步骤

在web.xml文件中定义核心Filter来拦截用户请求

  • 在web.xmlwen中配置如下片段

                <!--定义struts2的核心Filter-->
              <filter>
                       <filter-name>struts2</filter-name>
                        <filter-class>
                            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
                     </filter-class>
              <filter>
            <!--让struts2的核心Filter拦截所有的请求-->
              <filter-mapping>
                      <filter-name>struts2</filter-name>
                       <url-pattern>/*</url-pattern>
                      <dispatcher>REQUEST</dispatcher>
                       <dispatcher>FORWARD</dispatcher>
              </filter-mapping>
  • 如果需要以POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以GET方式发送请求,则无需经过这一步

  • 定义处理用户请求的Action类。

  • 配置Action。

             <!-- 配置首页访问的Action -->
                <action name="index" class="com.tgb.dmtOS.fontpage.action.IndexAction">
                    ...
                 </action>
  • 配置处理结果合物理视图资源之间的对应关系。
            <action name="index" class="com.tgb.dmtOS.fontpage.action.IndexAction">
                    <result name="index">/WEB-INF/fontPage/index.jsp</result>
                    <result name="studentStyle">/WEB-INF/studentStyle/studentStyle.jsp</result>
             </action>
  • 编写视图资源,如果Action需要把一些数据传给视图资源,则可以借助OGNL表达式

Struts2的常规配置

struts2提供了Convention插件来管理Action、结果映射,但是对于大部分实际开发来说,通常还是会考虑使用XML文件来管理struts2的配置信息。
struts.xml 配置文件应该放在web应用的类加载路径下,通常是WEB-INF/class路径下。作用就是配置Action请求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系。除此之外还配置Bean、配置常量、导入其他配置文件等。

Struts2内建的拦截器

struts2内建了大量的拦截器这些拦截器以name-class对的形式配置在struts-default.xml文件中,其中name是拦截器的名字,就是以后使用该拦截器的唯一标识;class则指定了该拦截器的实现类,如果程序定义package继承了Struts2的默认struts-default包,则可以自由使用下面定义的拦截器,否则必须自己定义这些拦截器:

这里写图片描述
这里写图片描述

内建拦截器的配置
  • <interceptor name="拦截器名" class="拦截器实现类">
    <param name="paramname"> paramValue</param>
    </interceptor>

    这里写图片描述
    这个语法格式中 name属性用于指定拦截器的实现类。有时,在定义拦截器时需要传入参数,这时需要使用<param>标签,其中name属性用来指定参数的名称。ParamValue表示参数的值。
    配置默认拦截器需要使用<default-interceptor-ref> 元素,此元素为<package>元素的子元素。其语法格式如下:

<default-interoeptor-ref name="拦截器(栈)的名称">

defaultStack拦截器组合了多个拦截器,这些拦截器的顺序经过精心的设计可以满足大部分程序的需求,只要定义包的过程中继承struts-default包,那么defaultStack拦截器栈就是默认拦截器的引用。

自定义拦截器

  • 如果需要开发自己的拦截器类,就需要直接或间接地实现
    com.opensymphony.xwork2.interceptor.Interceptor 接口。具体的代码如下:
public interface Interceptor extends Serializable{
    void init();//该方法在拦截器被创建后会立即被调用,它在拦截器的生命周期内只被调用一次。
    void destory();//与init方法相对应,在拦截器实例被销毁之前,将调用该方法来释放与拦截器相关的资源
    String intercept(ActionInvocation invocation) throws Exception;//每拦截一个动作请求该方法都会被调用一次。
}

Struts的标签库

对于一个MVC 框架而言,重点是实现两部分:业务逻辑控制器部分和视图页面部分。Struts2作为一个优秀的MVC框架,也把重点放在了这两个部分上。控制器主要有Action来提供支持,而视图则是由大量的标签来提供支持。Struts2框架对整个标签库进行了分类。
这里写图片描述

Struts2标签的使用

在JSP文件中使用taglib指令导入Struts2标签库 ,具体代码如下:
<%@taglib prefix="s" uri="/struts-tags" %>
struts中有很多标签比如:控制标签<s:if>、<s:elseif>、<s:else>、<s:iterator>

  • 迭代标签<s:iterator>

  • 数据标签 <s:property> 该标签用于输出指定的值。通常输出的是value属性指定的值。

  • 包含标签 <s:include> 用于当前页面中包含另一个页面(或servlet)

  • <s:param> 标签 它有两种用法,第一种是使用value属性指定参数值。
    用法如下:<s:param name="color" value="'red'"></s:param>
    它的另一种用法是通过标签体来指定参数值。<s:param name="color"> red</s:param>

  • 这两种语法的功能一样,不通电在于使用value实行设置参数时。需要加单引号,而使用标签体设置参数值时不需要

  • Struts2的表单标签:<s:form>、<s:submit>、<s:textfield>、<s:textarea>、 <s:password>、<s:radio>、<s:checkbox>、<s:checkboxlist>、<s:select>、<s:optgroup>、<s:file>、<s:hidden>、<s:reset>

总结:

尽管struts2有很多的漏洞被程序员所诟病,我们依旧不能忽略struts的优点。本篇文章通过对struts2的基本知识进行总结和罗列,让笔者自己对于struts2更加的了解。从struts2的下载到使用,读者是否对Struts2有了一定了解呢,最后感谢您的阅读,如有不妥之处还请大神斧正~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值