Struts2入门

xiaoxiao2021-02-28  75

前言目前struts2框架的应用是流行最广的。它是基于WebWork技术开发的全新Web框架。Struts 通过过滤器拦截要处理的请求,主要流程为:

           客户端发送一个http请求------------------>读取Web.xml中的过滤链,包括:ActionContextClearUp过滤器、其他web应用过滤器以及SrutsPrepareAndExcuteFilter过滤器(必备的)---------------->Action映射器将查找需要调用的Action对象,并返回Action对象的代理(如通过连接找到<a href="ognl.action">测试</a>)----------------->读取struts.xml配置文件中的相关配置,在经过一系列的拦截过滤后,Action容器调用指定的Action对象,将返回相应的jsp或freemaker等结果视图。-------------------->经过一系列的过滤拦截,HTTP请求回应给客户端。

开发struts所必需要的类库文件。

名称说明struts2-core-2.1.14.jar Struts 的核心类库xwork-core-2.1.6.jarXwork的核心类库ognl-2.7.3.jarOgnl表达式语言类库commons-logging-1.0.4.jarLog4j日志支持类库freemarker-2.3.15.jarFreemarker模板语言支持类库commons-io-1.3.2.jar处理IO操作的工具类库commons-fileupload-1.2.1.jar文件上传支持类库 三、如何新建一个简单的Struts2程序。

         (1)新建web项目。然后将Struts2的支持类库文件添加到WEB-INF目录的lib文件夹中。

         (2)在web.xml文件中声明struts2提供的过滤器,类名为 org.apache.struts2.dispatcher.ng.filter.StrutsPreparedAndExecuteFilter.关键代码如下:

          <!-- Struts2过滤器 -->      <filter>         <!-- 过滤器名称 -->         <filter-name>struts2</filter-name>         <!-- 过滤器类 -->         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>     </filter>     <!-- Struts2过滤器映射 -->     <filter-mapping>         <!-- 过滤器名称 -->         <filter-name>struts2</filter-name>         <!-- 过滤器映射 -->         <url-pattern>/*</url-pattern>     </filter-mapping>

       (3)在web项目源码文件夹中,创建名称为struts.xml的配置文件,并在该文件中配置Action对象。代码如下:

     <struts>     <!--声明常量  -->     <constant name="struts.devMode" value="true"></constant>     <package name="myPackage" extends="struts-default" namespace="/">        <!-- 定义action -->            <action name="ognl" class="com.lyq.action.OGNLAction">             <!-- 结果映射 -->              <result name="success">success.jsp</result>         </action>     </package> </struts>

          说明:1、<package> 标签:声明一个包,通过name属性指定包的名称为myPackage,并通过extends属性指定此包继承于struts-default包。

                     2、<action>标签:用于定义Action对象,它的name属性用于指定访问此Action的URL

                     3、<result>子元素:用于定义处理结果和资源之间的映射关系。

         技巧:在struts.xml文件中,Struts2的Action配置需要放置在包空间内,它类似于Java中的包的概念。通常情况下,声明的包需要继承于struts-default包。

       (4)新建一个java类继承ActionSupport。并在其中添加一些代码和属性。核心代码如:

               public class OGNLAction extends ActionSupport {                 private  static final long  serialVersionUID=1L;                    private String name;//普通属性对象                     private  Student student;      //学生对象                     Map<String,Object> request;                     public OGNLAction() {                      student = new Student();//实例化学生对象                      student.setId(1);  //对学号赋值                      student.setName("张三");                      name="朱云";                       request =(Map<String,Object>) ActionContext.getContext().get("request");                     }

                      ......

                   }

       (5)创建一个页面xx.jsp,在该页面中编写一个超链接,用于访问上面所定义的Action对象,此链接所指向地址为ognl.action。

        <a href="ognl.action">测试</a>

      在struts2中,Action对象的默认访问后缀为“.action”  ,并非绝对的。后面可更改。

四、结果。

      

      以上为笔者学习笔记,仅为加深学习印象。如有错误,还请留言指教。

 

转载请注明原文地址: https://www.6miu.com/read-85635.html

最新回复(0)