zoukankan      html  css  js  c++  java
  • .Net转Java自学之路—Struts2框架篇一(入门)

    概述:

      1、Struts2框架应用Java EE三层结构中的Web层框架。

      2、Struts2框架是Struts1和webwork基础之上发展的全新的框架。

      3、Web层常用的框架:Struts2、SpringMVC

    入门案例:

      1、导入jar包。

      2、创建action:每次访问action时,默认执行名称为execute()方法。

      3、创建Struts2核心配置文件
        》核心配置文件的名称和位置都是固定的。位置:src下。名称:struts.xml

        》引入dtd约束。

        》action配置:

    <struts>
        <package name="" extends="struts-default" namespace="/">
            <action name="访问名称" class="配置类的全路径">
                <!--配置方法的返回值到页面-->
                <result name="返回值">/xxx.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</filt-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    底层执行过程:

      地址发送请求后,进入过滤器,过滤器实现功能(过滤器在服务器启动时创建)。

      1、过滤器获取请求路径,得到路径中的值。
      2、然后再src下找到struts.xml,使用dom4j解析。得到xml文件中的内容;拿到的值到xml文件中找action标签,匹配name属性值是否一样。
      3、一样后,找到name属性所在的action标签中的另一个属性class属性,得到action的全路径,使用反射实现功能。

    Class clazz=Class.forName("action的全路径");
    //得到名称时execute的方法
    Method mt=clazz.getMethod("execut");
    //执行
    Object obj=mt.invoke();

      4、得到action方法的返回值。
        》在struts.xml文件中,找到action标签中的result标签,匹配该标签的name属性值是否一样;一样,则跳转配置的页面中。

    相关配置:

      1、名称和位置时固定的。

      2、配置文件主要有三个标签package、action、result标签中的属性。

      package:

        1、类似于包,区分不同的action,要配置action,必须首先写package标签,在package中才能配置action 。
        2、package标签属性:
          name:name属性的值与功能本身没有关系,在一个配置文件中可以有多个package标签,但name属性值不能相同。
          extends:表示一种继承的关系,该属性值固定:struts-default 。定义该属性后,在package中配置的类才具有action功能。
          namespace:命名空间.该属性值和action的name属性值构成访问路径。

      action:

        该标签配置action访问路径。该标签含有三个属性:
        name:namespace属性值和action的name属性值构成访问路径。在package标签中写多个action标签,但action的name属性值不能相同。
        class:action全路径。
        method:该属性可以让action中的多个方法进行执行。

      result:

        1、根据action的方法返回值,配置到不同路径中。
        2、包含两个属性:name、type 。
          name:和方法返回值一样。
          type:配置如何到路径中(转发或重定向)。默认值:转发。

      常量配置:

        1、默认常量位置:all.jar >> org.apache.struts2 >> static >> default.properties
        2、修改struts2默认常量值:常用方式:在struts.xml中进行配置

    <constant name="struts.i18n.encoding" value="utf-8">
    </constant>

        还有俩种方式:
          a、在src下创建struts.properties,进行修改。
          b、在web.xml进行配置。
        3、最常用常量:struts.i18n.encoding=UTF-8
          》表单提交数据到action中,在action中可以获取到表单提交数据。
          》表单提交数据有中文,解决有乱码问题:post提交直接设置编码;get提交做编码转换
          》如果在action获取表单通过post方式提交中文,中文乱码问题已帮解决。但get提交的中文还需要手动处理。

      分模块开发:单独写配置文件,然后引入到核心配置文件中。

    <include file="cn/text/action/xxx.xml"></include>

      Action三种编写方式:

        1、创建普通类。该类不继承任何类,不实现任何接口。
        2、创建类,实现接口Action 。
        3、创建类,继承类ActionSupport 。

      访问action的方法的三种实现方式:

        1、使用action标签的method属性,属性值中写执行的action方法。
          》使用method配置的情况缺陷:action的每个方法都需要配置,若action中有多个方法,需要配置多个action 。
        2、使用通配符方式实现:
          》在action标签中name属性,name属性值中用”*“号。*:表示匹配任意内容。
          》method属性中录入*的值:{1}
        3、动态访问实现。
          》如果action中的方法有返回值,在配置文件中没有配置,出现错误。
          》如果action中的方法有返回值,类型必须是String 。
          》action中的方法可以没有返回值,那么在result中就不需要配置。没有返回值的俩种写法:把方法写成void  或  把返回值写成"none"。

  • 相关阅读:
    php面向对象之构造函数和析构函数
    C#语言基础原理及优缺点
    零零散散学算法之具体解释几种最短路径
    Java解惑七:很多其它类之谜
    《Linux设备驱动开发具体解释(第3版)》进展同步更新
    setsockopt的作用
    全排列算法及实现
    【ASP.NET】怎样使用类创建公共函数,在不同ASP.NET页面间反复调用
    Git经常使用命令以及使用方法
    Ansi,UTF8,Unicode,ASCII编码的差别
  • 原文地址:https://www.cnblogs.com/zltao/p/10481802.html
Copyright © 2011-2022 走看看