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文件如下:
<?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
最新文章
- Spring配置文件标签报错:The prefix ";XXX"; for element ";XXX:XXX"; is not bound. .
- Tomcat的startup.bat一闪而过问题的解决
- shell变量定义
- hadoop 补充(转)
- uboot源码解析
- 为什么 API 监控对于任何业务来说都重要?
- &;lt;ASP.NET4 从入门到精通&;gt;学习笔记1
- Java程序设计第四周学习总结
- MySQL自定义函数用法详解-复合结构自定义变量/流程控制
- java jdk动态代理(proxy)
- 第一周java学习总结
- 版本控制工具 - TortoiseSVN
- 利用pom配置实现静态文件拷贝
- (线性dp,最大连续和)Max Sequence
- 【转】require.js学习笔记(一)
- php管理nginx虚拟主机shell脚本
- 二叉树的实现(Java语言描述)
- 铁乐学Python_day12_作业
- Push导航栏黑影问题
- mybatis由浅入深day01_5mybatis开发dao的方法(5.1SqlSession使用范围_5.2原始dao开发方法)
热门文章
- VirtualBox操作总结
- 对json的理解?
- [Python 网络编程] TCP编程/群聊服务端 (二)
- windows下更新npm的命令实现
- CSS中背景图片的background-position中的left top到底是相对于谁的?
- HDU 1358 Period 求前缀长度和出现次数(KMP的next数组的使用)
- 字符型设备驱动程序-first-printf以及点亮LED灯(三)
- 图形剖析,当给 ul 设置padding=0, margin=0后 li前面的小黑点消失的现象原理!
- Notes 20180509 : Java基本数据类型
- 基于OpenCV的微信跳一跳外挂