02-struts2配置

1.struts2配置文件加载顺序

struts2框架要能执行,必须先加载StrutsPrepareAndExecuteFilter.

在StrutsPrepareAndExecuteFilter的init方法中对Dispatcher进行了初始化.
在Dispatcher类中定义的init方法内就描述了struts2配置文件加载的顺序

init_DefaultProperties(); // [1] ---------- org/apache/struts2/default.properties
init_TraditionalXmlConfigurations(); // [2] --- struts-default.xml,struts-plugin.xml,struts.xml
init_LegacyStrutsProperties(); // [3] --- 自定义struts.properties
init_CustomConfigurationProviders(); // [5] ----- 自定义配置提供
init_FilterInitParameters() ; // [6] ----- web.xml
init_AliasStandardObjects() ; // [7] ---- Bean加载

  • 1.default.properties文件

作用:定义了struts2框架中所有常量
位置: org/apache/struts2/default.properties

  • 2.struts-default.xml

作用:配置了bean,interceptor,result等。
位置:在struts的core核心jar包.

struts-plugin.xml
它是struts2框架中所使用的插件的配置文件。
struts.xml
我们使struts2所使用的配置文件。

  • 3.自定义的struts.properties

就是可以自定义常量。

  • 4.web.xml

在开发中,后加载文件中的配置会将先加载文件中的配置覆盖。

2.关于Action的配置

  • 1.<package> 作用:是用于声明一个包。用于管理action。

1.name 它用于声明一个包名,包名不能重复,也就是它是唯一的。
2.namespace 它与action标签的name属性合并确定了一个唯一访问action的路径。
3.extends 它代表继承的包名。
4.abstrace 它可以取值为true/false,如果为true,代表这个包是用于被继承的。

  • 2<action> 用于声明 一个action

1.name 就是action的一个名称,它是唯一的(在同包内) 它与package中的namespace确定了访问action的路径。
2.class Action类的全名
3.method 要访问的Action类中的方法的名称,方法无参数 ,返回值为String.

  • 3.<result> 用于确定返回结果类型

1.name 它与action中的方法返回值做对比,确定跳转路径。

  • 关于action配置其它细节:
  • 1.关于默认值问题

<package namespace="默认值"> namespace的默认值是""
<action class="默认值" method="默认值">
class的默认值是 com.opensymphony.xwork2.ActionSupport

method的默认值是 execute
<result\d X name="默认值"> name的默认值是 "success"

  • 2.关于访问action的路径问题

现在的action的配置是:
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="cn.itcast.action.DefaultAction">
<result>/hello.jsp</result>
</action>
</package>

当我们输入:
http://localhost/struts2_day01_2/a/b/c/hello
也访问到了action。

原因:struts2中的action被访问时,它会首先查找
1.namespace="/a/b/c" action的name=hello 没有.
2.namespace="/a/b action的name=hello 没有
3.namespace="/a" action的name=hello 没有
4.namespace="/" action的name=hello 查找到了.

如果最后也查找不到,会报404错误.

  • 3.默认的action。

作用:处理其它action处理不了的路径。

<default-action-ref name="action的名称" />
配置了这个,当访问的路径,其它的action处理不了时,就会执行name指定的名称的action。

  • 4.action的默认处理类

在action配置时,如果class不写。默认情况下是 com.opensymphony.xwork2.ActionSupport。

<default-class-ref class="cn.itcast.action.DefaultAction"/>
如果设置了,那么在当前包下,默认处理action请的的处理类就为class指定的类。

----------------------------------------------------------------------------------------

关于常量配置

    • default.properties 它声明了struts中的常量。
    • 问题:人为设置常量,可以在哪些位置设置 ?

1.struts.xml(应用最多)
<constant name="常量名称" value="常量值"></constant>
2.struts.properties(基本不使用)
3.web.xml(了解)
配置常量,是使用StrutsPrepareAndExecuteFilter的初始化参数来配置的.
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>do,,</param-value>
</init-param>

    • 常用常量

struts.action.extension=action,,
这个常量用于指定strus2框架默认拦截的后缀名.

<constant name="struts.i18n.encoding" value="UTF-8"/>
相当于request.setCharacterEncoding("UTF-8"); 解决post请求乱码

<constant name="struts.serve.static.browserCache" value="false"/>
false不缓存,true浏览器会缓存静态内容,产品环境设置true、开发环境设置false

<constant name="struts.devMode" value="true" />
提供详细报错页面,修改struts.xml后不需要重启服务器 (要求)
----------------------------------------------------------------------------------

struts.xml文件的分离:

目的:就是为了阅读方便。可以让一个模块一个配置文件,在struts.xml文件中通过
<include file="test.xml"/>导入其它的配置文件。

时间: 2024-08-08 12:21:48

02-struts2配置的相关文章

Struts2配置详解

1.Namespace 1)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action:       2)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action       3)namespace最好也用模块来进行命名 当url中输入不存在的Action的时候,定向到默认的Action 1.1 struts2配置详解 1.

Struts2 配置

Struts2 配置 1.首先建立一个Web Project 2.将struts提供的jar包,放到lib目录下(添加必须要使用的,额外的不加,防止出现问题) 必须使用的jar包: commons-fileupload-  .jar(处理文件上传的) commons-io-  .jar(上面的依赖于这个) commons-logging-  .jar(日志处理) ognl-  .jar(表达式语言) struts2-core-  .jar() xwork-core- .jar(struts的内核

【SSH2(理论篇)】--Struts2配置详解

上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型其实类似于经典的三层模式,在每一层中分别添加了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置,数据持久层则采用的是Hibernate,开发模式简单易懂,接下来将会分别从三层着手讨论每一层的运行内容. 一.Struts体系简介 struts,是Apache软件基金会(ASF)赞助的一个开源项目,它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-V

Struts2配置细节

struts.xml中 action中配置 如果是返回到网页则 /AA/XX.jsp 如果是返回到action则看namespace然后传参数,如果是同一个namespace则直接写上返回的action的名字 从action传action有两种方式 一种是 type="chain" 1 <package name="p1" namespace="/namespace1" extends="struts-default"&

STRUTS2配置动态页面

CreateTime--2017年5月11日09:00:31Author:Marydon 1.struts配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/

struts2配置中Action的name 和package的name和namespace作用

struts2配置中Action的name 和package的name和namespace是什么作用 在struts2 struts.xml 配置中  <package name="ajax" extends="json-default" namespace="/json">           <action name="ajaxLogin" class="com.rg.email.action.

深入Struts2配置元素

本章重点描述了一下struts拦截器的使用,文章的前面顺带介绍了一下struts的Bean配置.常量配置和包配置 1.Bean配置 Struts2是一个高度可拓展的框架,框架大部分核心组件都是以配置的方式写在配置文件中的,当开发者需要替换其核心组件的时候,只需要写好自己的实现类, 然后配置到配置文件中.我们打开struts2-core-2.x.x.jar文件,打开里面的struts-default.xml文件,看到该文件配置了大量的Bean定义,该配置文件部分 代码如下所示: <!-- 下面是s

MyEclipse下struts2配置使用和Ajax、json的配合

原创文章,转载请注明:MyEclipse下struts2配置使用和Ajax.json的配合 新手,初学struts2的配置,同时尝试与Ajax通过json交互.首先介绍MyEclipse下struts2的配置. 1.struts2的配置 右键项目,MyEclips->project facets->install apache struts(2.x)facets URL pattern我选择了*.action,libraries只选择了core 1.1撰写action 新建package,名为

Struts2配置详解_配置Action

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法. public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方

Struts2配置常量方式

struts2配置常量有3种方式 1,在配置文件配置Struts2.xml里 例如:<constant name="struts.action.extension" value="do" /> 2,在struts.properties里配置 例如: 3,在web.xml里配置 例如: 原文地址:https://www.cnblogs.com/yz-bky/p/12600395.html