本文简单描述如何在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文件如下:

 <?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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsPro</display-name> <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</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文件如下:

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

Struts 2(二):使用Struts2的更多相关文章

  1. struts 2读书笔记-----struts2的开发流程

    一.将struts 2的lib文件夹下地commons-fileupload.jar.commons-io.jar.freemarker.jar.javassist.jar.ognl.jar.stru ...

  2. (二)Struts2 核心知识

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 get/set 自动获取/设置数据 action代码: ...

  3. struts2系列(二):struts2参数传递错误、struts2的输入错误验证

    一.struts2参数传递错误 1. 基本数据类型的传递最好使用包装类,原因是struts 2.1之后使用基本数据类型如果参数为空会报错2. 日期参数的传递最好定义一个区域的属性(定义locale), ...

  4. Struts笔记二:栈值的内存区域及标签和拦截器

    值栈和ognl表达式 1.只要是一个MVC框架,必须解决数据的存和取的问题 2.struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 1.  ValueStack是一个接口,在struts ...

  5. (二)Struts2配置文件

    一.web.xml文件 web.xml配置文件是一种J2EE配置文件,决定servlet容器的HTTP元素需求如何进行处理.它严格来说不是一个Struts2 配置文件,但它是Struts2 运作所需要 ...

  6. java的三大框架(二)---Struts2

    Strtu2框架 1.控制器:ActionServlet充当控制层 2.模型层:由ActionForm及业务JavaBean实现 3.视图:用户的看到并与之交互的界面   由struts标签库和jsp ...

  7. struts征程:1.初识struts2

    1.struts2在开发中所必须用到的jar包导入到项目的lib目录下 2.在web.xml中配置一个过滤器,代码格式如下 <filter> <filter-name>stru ...

  8. Struts(十二):异常处理:exception-mapping元素

    配置当前action的声明异常处理 1.exception-mapping元素中有2个属性 exception:指定需要捕获的异常类型 result:指定一个响应结果,该结果将在捕获到异常时被执行.即 ...

  9. 菜鸟学SSH(二)——Struts2国际化手动切换版

    国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化.程序在不修改内部代 ...

  10. Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(二)——Struts2集成

    1. pom.xml文件添struts2依赖jar包: <!-- 与Struts2集成必须使用 --> <dependency> <groupId>org.spri ...

随机推荐

  1. size和len

    size函数只能用于计算array,不能用于计算list,返回的是数组的元素个数 len函数既可以计算array,也可以计算list >>> a = np.array([1,2]) ...

  2. vim全选复制粘贴

    感谢来源:http://blog.sina.com.cn/s/blog_6e70abbd0100zbk9.html ggVG #gg: 光标跳转到首行,在vim才有效,vi中无效 #V 是进入Visu ...

  3. java基础——回文数判断

    /** * 题目描述: * 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字.编写一个函数,判断某数字是否是回文数字. * 要求实现方法: * ...

  4. useradd添加用户

    sudo useradd -m -s /bin/bash $user sudo passwd $user linux useradd/userdel 命令 转自:http://hi.baidu.com ...

  5. JVM培训之一些GC算法的理论知识

    很精彩的一次内部分享,介绍了大部分的GC算法理论知识,JVM博大精深,本篇文章只是结合本次内部分享总结的一些理论知识,如果有大佬有疑问,欢迎留言指出! Concurrent:并发,程序一边运行一边做G ...

  6. 【腾讯敏捷转型No.3】Scrum有什么好?

    在敏捷转型的过程中,除了敏捷宣言中的四个价值观和十二条原则以外,并没有太多比较权威的理论实践. 如图一,敏捷宣言中的四个价值观: (图一) 四条敏捷核心价值观指出了敏捷的核心思想,但是并没有仔细说明具 ...

  7. mina 通讯框架

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),M ...

  8. Java实现目的选层电梯的调度

    一.前言 本次博客我将简单介绍一下前两次的电梯作业,并简单解析一下我的程序结构,进一步对我的第二次作业的算法核心和一些想法做一些分享,我的电梯设计算法并不是由调度器来决定电梯的捎带与否,而是由电梯自主 ...

  9. c#将List转换成DataTable

    前面写了一篇List<T>转换成DataTable,这里主要是完善了前面的代码. 同样使用了emit,我把代码整理后上传了git. 另外增加了特性的设计. 设计了三类特性ColumnTyp ...

  10. Error evaluating expression ''xxx''. Cause: org.apache.ibatis.ognl.NoSuchPropertyException:

    1.检查实体类相应的字段名以及set,get方法(仔仔细细看) 2.检查mapper.xml取值字段 3.注意实体类中isDelete等类似 isXxx的字段 set get方法会变成GetDelet ...