SSH框架之Struts2 第一天

JAVA学习网 2017-08-30 18:31:03

 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.xml

        新建一个strut.xml的文件

          文件内写入约束(导入后的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.xml

      

<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.xml文件进行修改

            用<constant>标签进行修改

            

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

            

        第三种:用web.xml进行修改

            用<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.xml中 默认值的设置

        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>

 

        

 

 

 

 

 

 

 

 

 

 

 

      

 

    

 

阅读(782) 评论(0)