Struts2 配置环境

提示:只有掌握了配置文件的用法,才能更好的使用和扩展Struts2框架的功能;

主要配置文件表:
文件 是否可选 位置(相对于WEBAPP) 用途
web.xml 否 /web-inf/ Web部署描述,包括所有的框架组建。
struts.xml 是 /web-inf/class 主要配置文件,包含result映射、action映射/拦截器配置等;
struts.properties 是 /web-inf/classes/ Struts2框架的属性配置;
struts-default.xml 是 默认配置
struts-plugin.xml 是 /web-inf/struts2-xx-plugin.jar Struts2框架的插件所用的配置文件



解释:
web.xml :是所有的javaWeb 应用程序都需要的核心配置文件;
Struts2 的核心控制器是通过一个过滤器完成的;
核心控制器:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

struts.properties 属性定义文件,该文件定义了Struts2框架中的大量属性值、常量; 该文件是一个标准的Key-Value格式的文本文件

struts-deafault.xml : 是Struts2的基础配置文件,并为框架提供默认的设置,位置:Struts2-core-2.1.8.jar,自动加载
<package name="struts2" namespace="/cho2" extends="struts-default">
struts-default 这个包就是struts-default.xml中定义的

struts.xml :是框架的核心配置文件,主要用于配置和管理开发人员编写的action;;

struts-plugin.xml : 插件配置文件


3.2: Struts 的配置详解
3.2.1:常量配置
通过常量配置,可以改变Struts2框架和插件的行为,从而满足不同web应用的需要;

案例:以struts.devMode属性设置为例,设置常量:
struts.xml 中:<constant name="struts.devMode" value="true"/>
struts.properties 中:struts.devMode = true
web.xml文件中:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

<!-- 配置常量 在web.xml中进行配置 -->
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>

3.2.2 :包的配置
Struts2使用包来管理action 拦截器等核心组件;包{对个action 、多个拦截器、多个拦截器引用}
Struts2中的包类似与Java中的类;

属性介绍:
<package name="" extends="" namespace=""></package>
name:必填属性,该属性指定包的名称,其他包继承时使用属性;
extends:可选属性,该属性指定该包继承其他包,同时继承其他包中的Action 、拦截器等配置;
namespace : 可选属性,该属性定义该包的命名空间,指定用户请求的URL 目录路径;
abstact : 可选属性,该属性为TRUT时说明该包是抽象包,不能定义 Action属性,默认False;

3.2.3 :命名空间配置
Struts2 框架使用action的名称和它所在的名称空间来标示一个action , 不同的空间可以使用同名的action , 提高了系统的灵活性
默认命名空间用 "" 表示
namespace="/" 根命名空间

3.2.4:包含配置
项目被分成多个小模块,对每个模块单独的提供一个配置文件,然后可以在struts.xml 中使用include 元素来包含其它配置文件
include元素只有一个file属性,指定被包含文件的文件名;
<struts>
<include file="struts-chat.xml"/>
<include file="struts-2.xml"/>
..............
</struts>

3.2.5 ;配置Action
action 映射是框架中的基本“工作单元”;action映射就是将一个请求URL 映射到一个action类

action的属性解释:
<action name="" class="" method ="" converter=""></action>
name:action 的名称,用于匹配请求的URL
class:action实现类的完成类名
method:执行action时调用的方法
converter:应用与action的类型转换器的完整类名

情况1:
<action name="helloword">
<result name="></result>
</action>
class method 两个属性默认了那么:class 属性默认指定:com.opensymphony.xword2.ActionSupport类
method 默认指定 execute() 这个方法;

示例:
<!-- 请求/add , 调用action中的add()方法 -->
<action name="add" class="com.struts.action.NewsAction" method="add">
<result name="success">/success.jsp</result>
</action>

3.2.6 :动态方法的调用DMI --Dynamic Method Invocation
无需配置可以动态的调用非execute的方法; 直接的请求/add!add.action 就可以调用add() 这个方法
http://localhost:8080/StrutsNotes/edit!edit.action

actionName!methodName.action
<!-- 请求/add , 调用action中的add()方法 -->
<action name="add" class="com.struts.action.NewsAction">
<result name="success">/success.jsp</result>
</action>
开启或禁用:DMI
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

3.2.7 :通配符的映射
作用:使用通配符可以减少action配置的数量,使用一些具有类似行文的Action 或者 Action 的方法可以使用通用的样式配置;
通配符:*
<action name="*news" class="" method="{1}">
</action>
释义:允许这个映射匹配所有以news结尾的URL,如:/addNews/updateNews
{1} :占位符,它将被通配符所匹配的值替换
addNews--*匹配的是add ; 那么 {1} ,将被add替换,则调用add() 方法

{N} -- N==1-9 ,匹配对应的通配符*
{0} --- 匹配整个URL ,例如:
<action name="*_* " class="com.svse.action.{1}Action" method="{2}">
<result name="success">/{0}.jsp</result>
</action>
当我们访问:/News_update时, {1}==News {2}==update {0}==News.update

注:如果通配符放在后面则用_符号隔开;

如果在action映射中使用了通配符,那么映射即那个按照他们出现在框架文件中的顺序来匹配请求;


3.2.8 ;配置result
在Struts2框架中,一个result代表一种视图组件;
组成:result映射 result类型
结果映射:
属性介绍:name 指定result的逻辑名
type 指定result 的类型,不同类型的result 代表了不同类型的结果输出

省略name属性,默认值为success,省略type属性,默认值为dispatcher
省略param子元素,直接在result元素的内容中给出实际的资源位置;

结果类型:
redirectActoin 结果类型由两个参数;
actionName
指定重定向要访问的action 的名字,该参数是默认的;
namespace :指定action所属的命名空间,如果么有使用这个参数,那么默认的使用当前的命名空间;

案例:
<package name="t1" namespace = "/aa" extends="struts-defalut">
<action name="test1Action" class="...Test1Action">
<result type="redirectAction">
<param name="actionName">test2Action</param>
<param name="namespace">/bb</param>
</result>
</action>
</package>
<package name="t2" namespace="/bb" extends="struts-default">
<action name="test2Action" class ="org....Test2Action">
<[code="java"][code="java"]
[/code]result >/success.jsp</result>
</action>
</package>


3.2.9:全局结果
<global-results>
<result name=>
<result name=""></result>
</global-results>









[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值