首页 > 学院 > 开发设计 > 正文

Struts.xml配置文件的讲解

2019-11-06 08:34:57
字体:
来源:转载
供稿:网友

这里再次强调:

过滤器在我们的服务器启动的时候就会被加载创建。包括struts过滤器。在strtus2过滤器被创建加载的时候init就会加载很多配置文件,有我们自己配置的(struts.xml配置文件),和struts本身自带的一些配置文件。

配置文件的介绍:

package标签:

相当于代码包,用于区别不同的action。要配置action,必须首先写package标签,在package里面才能配置action

name属性:

可以随便写,和功能无关,但是package之间的name属性不能够相同。

extends属性:

表示继承的关系,属性值是固定的,struts-default写了这个属性之后,在package里面配置的类才具有action功能

namespace属性:

这是命名空间,namespace属性值和action标签里面的属性值构成访问路径“”值和”/”值作用是一样的

action标签:

action标签配置action访问路径

name属性:

namespace属性值和action标签里面的属性值构成访问路径package标签里面可以写多个action标签,但是action的name属性值不能相同

class属性:

这里是类的全路径,底层用的反射

method属性:

里面表示class类的xx方法值就写方法名默认执行execute方法

result标签:

根据action方法的返回值,配置到不同的路径里面,不仅是页面也可以是不同的action。值:/hello.jsp ,/表示当前项目

name属性:

和方法的返回值一样

type属性:

配置如何到路径中去(转发或者重定向)默认值为转发操作,转发后地址栏不会变

修改struts2默认常量值

在struts.xml中进行配置<constant name="struts.i18n.encoding" value="UTF-8"/>//一般通过这种方法进行配置

还有两种方式:

在src下面创建struts.PRoperties,进行修改web.xml中进行配置

设置以上值只后起到的作用就是:

表单提交数据到action里面,在action可以获取表单提交数据。表单提交数据有中文,有乱码问题。

以前我们在servlet中解决乱码的方式是:

Post提交数据直接设置编码get提交做编码转换

如果在action获取表单通过post方式提交中文,中文乱码问题这样就能够解决,不需要自己处理问题。

分模块开发:

用xml中的include实现多人开发互不影响。<include file="">file路径是src下的路径

Action的编写方式:

action共有三种编写方式

第一种 创建普通类,这个不继承任何类,不实现任何接口。第二种 创建类,实现接口Action(导入xwork里面的包)第三种 创建类,继承类 ActionSupport

第二种:实现接口Action:

里面有很多常量,可以直接作返回值。这种方式一般很少去用。

第三种:继承类 ActionSupport(ActionSupport已经实现了Action接口)

这种方法比较常用

访问action的方法:

有三种方式实现:

第一种,使用action标签的method属性,在这个属性里面写执行的action方法。第二种,使用通配符方式实现,这个是最常使用的方法 动态访问实现(不用)

第一种方法:使用method进行配置

method的值就直接写方法名称缺陷:action每个方法都需要配置,如果action里面有多个方法,就会配置很多的action。

第二种方法:使用通配符的方式实现(常用)

在action标签里面有个name属性,name属性值里面,我们要写一个符号,叫*号,这个*号怎么理解呢??*代表所有的意思,它能够匹配所有的字符串。注意,是所有。*也可以和其它字符串组合,形成其它的模式匹配。当用*作匹配的时候,如果匹配成功,在method中,可以用{1}、{2}、{3}来把匹配成功的字符串取出来,和正则表达式差不多。也就是说我们可以这么写struts2配置<package name="FireLang" namespace="" extends="struts-default"> <action name="book_*" class="cn.domarvel.Book" method="{1}"> </action></package>

理解:

这样来写时,当访问的值为book_add时,method获取到的值就是add,也就是能够调用Book类的add方法当访问的值为book_update时,method获取到的值就是update,也就是能够调用Book类的update方法这里的{1}的意思就是获取匹配到的第几个*号的值。

注意事项:

在action里面的方法返回值,返回值可以是有也可以是没有,如果有返回值时,类型必须是String类型。

有返回值时:

action有返回值时,如果在result标签中没有匹配到的时候,就会报result没有定义的错误。

没有返回值时:

action没有返回值时,在result标签中不需要配置。没有返回值时,用户访问后,用户将看到空白页面的效果。

如何才能没有返回值:

把方法写成void让返回值为”none”,也可以直接调用常量。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表