你的位置:首页 > Java教程

[Java教程]SSH框架之Struts2 第一天

 1.  Struts2框架概述:

    Struts2是一种基于MVC模式的轻量级Web框架,是Struts1与WebWork技术的基础上进行合并后的全新框架(与Struts1有很大的区别)。在传统方式的开发中,有一次请求就会对应一个Servlet。这样导致出现很多Servlet,而Struts2将所有的请求都先经过过滤器,在过滤器中实现框架的部分功能,剩下的具体操作提交到具体的Action中。Struts下载地址:https://struts.apache.org/


 

  2.  搭建Struts2框架

     导包

      1. 解压Struts文件
      2. apps  ----->   struts2-blank.war     文件解压
      3. WEB-INF     ----->     lib  下的jia包就是所需要的包

          

     书写Action类

 

        1.新建一个后缀名为Action的普通类 继承ActionSupport类

        2.创建一个返回值为String类型,无参数的方法

        

 1 import com.opensymphony.xwork2.ActionSupport; 2  3 public class HelloWorldAction extends ActionSupport { 4  5  public String hello() { 6    7   System.out.println("hello world"); 8   return "success"; 9   10  }11  12 }

 

 

     书写src/struts.

        新建一个strut.

          文件内写入约束(导入后的Struts2-core  jar包中的Struts-2.*.dtd中的一段话 )

            

            

          接下来开始配资

              

<struts>   <!-- package:將Action封裝,可以配置很多action     name:给包起个名字,起到标识作用,不能与其他的重复     namespace:给action的访问路径定义一个命名空间     extends:继承一个指定堡struts—default     abstract属性:包是否为抽象的;标识属性,表示该包不能独立运行,专门被继承,给看代码的人看的无用    -->  <package name="hello" namespace="/hello" extends="struts-default">    <!-- action属性:配置action类     name属性:决定Action访问的资源名     class属性:action的完整类名     method属性:指定调用Action中的那个方法来处理请求     -->   <action name="helloAction" class="com.mabt.struts2.HelloWorldAction" method="hello">      <!-- result属性:结果配置      name属性:标识结果处理的名称,与action中的method的返回值相对应      type属性:指定调用哪一个result类来处理结果,默认使用转发      标签体:填写页面的相对路径      -->    <result name="success">/hello.jsp</result>   </action>  </package> </struts>

 

     将struts2核心过滤配置到web.

      

<filter>  <filter-name>struts2</filter-name>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

 

 

     测试

        


 

    3.   Struts  常量配置

      常量的默认位置

        默认的位置在default.properties文件中

          

      修改的方式

        第一种:用struts.

            用<constant>标签进行修改

            

        第二种:用struts.properties文件进行修改

            

        第三种:用web.

            用<context-param>标签进行修改

              

      常用的常量

        

 


 

 

      4.   动态方法调用

    

 <struts>   <package name="hello" namespace="/hello" extends="struts-default">      <!--动态调用hello方法(访问时用hello代替*),*前面,helloAction后面可为任何字符,也可没有-->   <action name="helloAction_*" class="com.mabt.struts2.HelloWorldAction" method="{1}" >      <!--method="{1}"标识将第一个*传来的值给method-->     <result name="success">/hello.jsp</result>   </action>  </package> </struts>

 

    


 

 

      5.   struts.

        action 的 method属性的默认值为:execute;

        result 的 name 属性的默认值为  :success

        result 的 type 属性的默认值为:  dispatcher  转发;

        

 <!--   action 的 method属性的默认值为:execute;        result 的 name 属性的默认值为 :success        result 的 type 属性的默认值为: dispatcher 转发;
--><!--找不到包中的action,hello.jsp会作为默认的action处理请求 --><default-action-ref name="/hello.jsp"></default-action-ref>