Struts2配置文件

1、配置文件的加载顺序

1.1、加载时机

struts2有很多配置文件,如下面的表格:
当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了。

1.2、加载顺序

顺序配置文件名所在位置说明
1default.propertiesstruts2-core-2.3.33.jar\org\apache\struts2无法修改
2struts-default.xmlstruts2-core-2.3.33.jar无法修改
3struts.xml我们的应用中可以修改
4struts.properties我们的应用中可以修改
5web.xml我们的应用中可以修改

1.3、default.properties的默认配置

配置说明
struts.i18n.encoding=UTF-8国际化
struts.action.extension=action,默认访问的后缀名
struts.devMode = false是否是开发模式,开发模式:改了配置文件,不需要重启,建议开发阶段开启,设置为true

1.4、修改struts2的访问后缀

有三种方式:1、在struts.xml的配置文件中添加如下代码:

<constant name="struts.action.extension" value="do"></constant>

2、在src下创建struts.properties,并添加如下代码:

struts.action.extension=do

如果使用第二种配置方式,会覆盖struts.xml中的配置。
3、在web.xml中配置,代码如下:

<filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
   <init-param>
            <param-name>struts.action.extension</param-name>
            <param-value>do</param-value>
   </init-param>  
</filter>

1.5、配置struts2的开发模式

在struts.xml的配置文件中添加如下代码:

<constant name="struts.devMode" value="true"></constant>

将value值设置为true,开启了struts2的开发模式;

2、配置文件的主要元素

2.1、package元素

作用:在struts2的配置文件中引入了面向对象思想,使用了分包管理。易于管理动作类。便于模块化开发动作类。
属性:

属性名说明
name包名,唯一
extends需要继承struts-default包
abstract把包声明为抽象包,抽象包是用来被继承的,只要是没有action元素的包,就可以声明为抽象包
namespace命名空间,访问路径=命名空间+动作名称

namespace详解:

namespace的默认取值是一个""
注意:默认值不是/,写自定义的namespace时需要加/ ,例如:

<package name="p1" extends="struts-default" namespace="/user">
   <action name="hello" class="com.fu.controller.HelloAction" method="sayHello">
       <result name="success">/success.jsp</result>
    </action>
 </package>

访问路径为http://localhost:8080/Struts2/user/hello.do

2.2、action元素

作用:配置动作,处理请求路径
属性:

属性名说明
name动作名称,唯一
class动作类全名:包名+类名
method动作类中的方法名称,方法有三个要求:1、必须是public;2、返回值必须是String;3、方法没有参数

动作类的第一种写法:
(1)、写个Action类,不需要继承任何类,然后在struts.xml中配置。

//Action类
public class HelloAction {
    public String sayHello(){
        System.out.println("Hello World");
        return "success";
    }
}

Struts.xml配置文件:

<package name="p1" extends="struts-default" namespace="/user">
   <action name="hello" class="com.fu.controller.HelloAction" method="sayHello">
       <result name="success">/success.jsp</result>
    </action>
 </package>

访问路径:http://localhost:8080/Struts2/user/hello.do

2.3、result元素

作用:为动作提供结果视图
属性:
name:逻辑视图的名称,对应着动作方法的返回值。默认值是success
type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher转发。

<package name="p1" extends="struts-default" namespace="/user">
        <action name="hello" class="com.fu.controller.HelloAction" method="sayHello">
            <result name="success" type="dispatcher">/success.jsp</result>
        </action>
 </package>

result中type类型:

dispatcher :(默认值)使用请求转发,转向一个页面。
redirect :使用重定向,转向一个页面。
chain: 转发到另一个相同名称空间的动作
redirectAction: 重定向到另一个相同名称空间的动作

redirect重定向:
在这里插入图片描述
chain :转发到同一个名称空间的动作
在这里插入图片描述
redirectAction :重定向到同一个名称空间的动作
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值