zoukankan      html  css  js  c++  java
  • Struts 2(二):使用Struts2

    本文简单描述如何在Eclipse中使用使用Struts2,并介绍一下Struts2的配置文件

    注:Struts2默认需要Java 5.0及其以上版本的运行环境支持,Web容器需要支持Servlet 2.4和JSP 2.0

    一、Eclipse+Struts

    1.新建项目

    在Eclipse中新建Dynamic Web Project,项目名为StrutsPro,在WEB-INF/lib目录下添加Struts 2框架的jar包,项目结构如下图所示:

    2.配置web.xml

    编辑项目中的web.xml文件,在该文件中配置Struts 2的核心Filter,编辑后的web.xml文件如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2  <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_2_5.xsd" id="WebApp_ID" version="2.5">
     3    <display-name>StrutsPro</display-name>
     4   
     5    <filter>
     6        <filter-name>struts2</filter-name>
     7        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     8    </filter>
     9    <filter-mapping>
    10        <filter-name>struts2</filter-name>
    11        <url-pattern>/*</url-pattern>
    12    </filter-mapping>
    13 </web-app>

    解说:

    代码第6行定义了核心过滤器的名称为struts2

    代码第7行配置核心Filter的实现类为org.apache.struts2.dispatcher.FilterDispatcher

    代码第11行用来配置核心过滤器过滤所有的Web请求

    配置完web.xml文件后,项目就已经添加好Struts 2框架了

    3.配置struts.xml

    struts.xml是Struts 2框架的核心配置文件,主要负责管理Struts 2框架下的业务控制器Action

    struts.xml放置在项目的WEB-INF/classes路径下,需要在struts.xml文件中添加XML规范、DTD以及根目录信息,编辑后的struts.xml文件如下:

    1 <?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 -->
    2 <!DOCTYPE struts PUBLIC
    3   "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    4   "http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 指定Struts 2配置文件的DTD信息 -->
    5 <struts><!-- 根节点 -->    
    6 </struts>

    解说:

    代码第1行为XML声明

    代码第2行至第4行用来指定Struts 2配置文件的DTD信息

    XML的根节点为struts,所有的配置信息都放置在该节点之下。

    二、Maven+Struts

    暂略

    三、配置文件

    3.1 struts-default.xml文件

    struts-default.xml文件包含在Struts2-core-2.x.x.jar中,是struts2框架默认加载的配置文件,它定义了一些bean和拦截器,为框架提供默认设置

    此外,Struts2有两个核心配置文件:struts.xml文件、struts.properties文件

    3.2 struts.xml文件

    struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等,访问路径 = 命名空间 + 动作名称

    include  引入其它配置文件
    package

    属性:name

      包的名称,保持唯一。

    属性:extends

      一般情况下需要继承struts-default包,但不是必须的,如果不继承将无法使用struts2提供的核心功能

      struts-default在struts-default.xml中定义

    属性:namespace

      命名空间

    action

     属性:name

      动作名称

    属性:class

      类的路径

    属性:method

      方法名称

    result  
    global  
    constant

    设置请求URL的扩展名:<constant name="struts.action.extension" value="do"></constant>

    设置开发者模式:<constant name="struts.devMode" value="true"></constant>

       
       
       

    案例:

    <?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>
        <!-- 所有匹配*.action的请求都由struts2处理 -->
        <constant name="struts.action.extension" value="action" />
        <!-- 是否启用开发模式 -->
        <constant name="struts.devMode" value="true" />
        <!-- struts配置文件改动后,是否重新加载 -->
        <constant name="struts.configuration.xml.reload" value="true" />
        <!-- 设置浏览器是否缓存静态内容 -->
        <constant name="struts.serve.static.browserCache" value="false" />
        <!-- 请求参数的编码方式 -->
        <constant name="struts.i18n.encoding" value="utf-8" />
        <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
        <constant name="struts.i18n.reload" value="true" />
        <!-- 文件上传最大值 -->
        <constant name="struts.multipart.maxSize" value="104857600" />
        <!-- 让struts2支持动态方法调用 -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
        <!-- Action名称中是否还是用斜线 -->
        <constant name="struts.enable.SlashesInActionNames" value="false" />
        <!-- 允许标签中使用表达式语法 -->
        <constant name="struts.tag.altSyntax" value="true" />
        <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
        <constant name="struts.dispatcher.parametersWorkaround" value="false" />
    
        <include file="new-define.xml"></include>
    
        <package name="studentMgr" extends="struts-default" namespace="csu">
            <interceptors>
                <interceptor name="filter" class="com.csu.filter.CommitFilter"></interceptor>
    
                <interceptor-stack name="mystack">
                    <interceptor-ref name="filter"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
    
            <action name="register" class="com.csu.action.LoginAction">
    
                <interceptor-ref name="mystack"></interceptor-ref>
    
                <result name="success" type="dispatcher">/studenInfo.jsp</result>
                <!--
                    参数设置 
                    name:对应Action中的get/set方法 
                -->
                <param name="url">http://www.csu.com</param>
    
            </action>
        </package>
    
    </struts>

    3.3 struts.properties文件

    struts.properties文件通常放在Web应用的WEB-INF/classes路径下,是一个标准的Properties文件,该文件定义了Struts 2框架的大量属性,每个key就是一个Struts 2属性,该key对应的value就是一个Struts 2属性值,开发者可以通过改变这些key-value来满足应用的需求。

    属性 含义
    struts.configuration 该属性指定Struts2的配置文件管理器,该属性的默认值是org.apache.Struts2.config.DefaultConfiguration;开发者可以自行实现Configuration接口来加载Struts2的配置文件
       
       
       
       
       

    参考资料:

    Eclipse怎样配置struts2_百度经验

    http://jingyan.baidu.com/article/fd8044fafdf0a25030137a7c.html

  • 相关阅读:
    仿美团pc,koa+ssr(四)
    基本的数据库操作脚本
    jQuery选择器总结
    经常学习参考网站
    WebAPI
    Sqlserver 基本面试题
    truncate和delete的区别
    Webservice,WCF,WebAPI 之间的区别
    WCF 学习
    学习angularJs(1)--引用文件
  • 原文地址:https://www.cnblogs.com/studyLog-share/p/5500594.html
Copyright © 2011-2022 走看看