• 01. struts2介绍


    struts2优点

    • 与Servlet API 耦合性低。无侵入式设计
    • 提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能
    • 支持多种表现层技术,如:JSP、freeMarker、velocity等
    • 输入校验可以对指定方法进行校验,解决了struts1长久之痛
    • 提供了全局范围、包范围和Action范围的国际化资源文件管理实现

    搭建struts2开发环境

    1. 导包

    • struts2-core-2.x.x.jar:核心类库
    • xwork-2.x.x.jar:XWork类库,struts2在其上构建
    • ognl-2.6.x.jar:对象图导航语言,struts2通过其读写对象属性
    • freemarker-2.3.x.jar:struts2的UI标签的模板使用FreeMarker编写
    • commons-logging-1.1.x.jar:ASF出品的日志包,struts2使用这个日志包来支持log4j和jdk1.4+的日志目录
    • commons-fileupload-1.2.1.jar:文件上传组件,2.1.6后必须加入此文件

    2. 配置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>
    
    • struts2框架通过Filter启动
    • StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作
    • struts2读取到struts.xml的内容后,以JavaBean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件

    3. 编写Action类,这是我们的逻辑控制器

    package com.liuyong666.action;
    
    public class HelloWorldAction {
    	private String msg;
    	
    	public String getMessage() {
    		return msg;
    	}
    
    	public String execute(){
    		msg = "我的第一个struts2应用";
    		return "success";
    	}
    }
    

    4. 配置src/struts.xml,核心配置文件中配置action

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
       <package name="liuyong666" namespace="/test" extends="struts-default">
            <action name="helloworld" class="com.liuyong666.action.HelloWorldAction" method="execute" >
    			<result name="success">/WEB-INF/page/hello.jsp</result>
            </action>
        </package> 
    </struts>
    
    • 在struts2中使用包管理Action
    • 配置包时必须指定name属性,可以任意名,但必须唯一
    • namespace定义该包的命名空间,为访问该包下Action的路径的一部分,如上边例子的访问路径为:/test/helloworld.action。也可以不配置
    • 继承struts-default包,该包拥有struts2提供的核心功能,拥有各种拦截器。
    • 包可通过abstract="true"定义为抽象包,抽象包中不能包含action

  • 相关阅读:
    【情感计算】资源
    有意思的网站
    【NLP】新词发现
    [openwrt]网络配置
    【SSH】远程下载
    【OpenWRT】网络配置
    [SSH]连接失败
    [Openwrt]wifi桥接设置
    【Openwrt】刷
    【Python】excel
  • 原文地址:https://www.cnblogs.com/huayonglun/p/14028111.html
Copyright © 2020-2023  润新知