美文网首页
struts2入门

struts2入门

作者: 長又长 | 来源:发表于2017-05-16 21:06 被阅读0次

    [TOC]

    struts2

    直译:支柱

    在Struts1和webwork框架基础上发展的全新的框架

    Struts2核心功能:

    1、允许POJO(Plain Old Java Object)对象作为Action
    2、Action的execute方法不再与ServletAPI耦合,更易测试
    3、支持更多的视图技术(JSP、FreeMarker、Velocity)
    4、基于SpringAOP思想的拦截器机制,更易扩展
    5、更强大、更易用输入校验机制
    6、整合Ajax支持

    struts2 入门

    导包

    bags.png

    配置Struts2核心过滤器web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <filter>
       <filter-name>strust2</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
       
      </filter>
      <filter-mapping>
      <filter-name>strust2</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
    </web-app>
    

    创建Action继承ActionSupport

    public class UserAction extends  ActionSupport {
    
        
        public String exectute(){
            System.out.println("我是struts2");
            return "ok";
            
        }
        
    }
    

    配置Action的访问路径

    配置文件名必须是struts.xml,必须放在src下面,xml文件需要引入dtd约束

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
     
     <struts>
        <constant name="struts.devMode" value="true"></constant>
        <package name="default" namespace="/" extends="struts-default">
     
            <!--配置action  -->
            <action name="hello" class="com.wxb.action.UserAction"  method="exectute">
            <result name="ok">welcome.jsp</result>
            </action>
        </package>
     </struts>
    

    对应关系

    • hello 对应action 标签name的值 ----------请求入口
    • method对应action类中的方法 ------------请求方法
    • action方法返回值对应result标签里面的name值 ------------请求返回值
    • 响应地址/welcome.jsp 对应跳转地址 ----------------请求地址

    运行流程中的默认:

    • 默认action类是ActionSupport** (可省略)
    • 默认method=“execute” (可自由命名)
    • 默认result name=“success” (可自由命名)
    • 默认响应是转发 (dispatcher) 可改为重定向

    NOTICE:
    在使用父类ActionSupport省略的时候 action里的name 必须为默认的success

    异常处理

    
          <!-- 异常全局处理 -->
            <global-results>
          <result name="error" type="redirect">error.jsp</result>
            </global-results>
           <global-exception-mappings>
            <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
            </global-exception-mappings>
    

    拦截器

    <1>自带拦截器 modelDriven** Exceptioon等

    <2>自定义拦截器
    场景举例:统计方法运行时间

    -创建自定义拦截器 需继承AbstructInterceptor

    -配置 Interceptors

    -相应的action方法加上自定义拦截器

    -相应的action方法补上default-Stack默认拦截器

    动态访问

    • 访问方法不写

    • 前端访问入口是 user!方法

    • 方法返回值变成入口访问的方法

    <action name="user" class="com.wxb.action.UserAction">
          <result name="insertUser" type="redirectAction">user!selectUser</result>
          <result name="deleteUser" type="redirectAction">user!selectUser</result>
          <result name="updateUser" type="redirectAction">user!selectUser</result>
          <result name="selectUser">index.jsp</result>
          </action>
          
    

    相关文章

      网友评论

          本文标题:struts2入门

          本文链接:https://www.haomeiwen.com/subject/wacrxxtx.html