Struts2小结(2)

struts.xml文件配置

一:package标签

1.<package>配置web应用的不同模块,一般在一个功能模块下配置一个package,在当前模块下配置这个模块的多个action

2.name属性:给不同的模块起不同的名字,可以任意起,不能重复

3.namespace属性:给不同的模块设置访问的根路径,可以配置成/,也可以不配置,如果不配置默认是 "";

(1)按照请求路径先去匹配namespace,如果有对应的namespace接着会去action的name,如果没有对应action的name,就回去默认的命名空间找对应的action,如果没有这个action,就会报404 

(2)按照请求路径会先去匹配namespace,如果没有这个namespace,就去根命名空间下找对应的action,如果没有对应的action就回去着默认的action如果还没有就404 

4.extends属性表继承,struts-default是struts2给我们提供的一个package



二:action标签

action标签表示配置一个请求

name属性表示请求路径的后缀,一般表示功能模块的具体请求,name的名称就代表访问路径的名称

class属性表示当请求过来的时候调用的是那个类中的方法,配置全类名、

method表示class请求调用的是class中的哪个方法,指具体的方法名


三:result标签


result结构配置,用于设置不同的方法返回值,可以配置不同的返回值对应不同的视图

(1)name属性:表示结果处理名称,与action中的返回值对应

(2)type属性表示指定的哪个result类来处理显示的页面,默认是内部转发,可以在struts-default的文件中进行查看

(3)标签体表示相对路径,相对于web应用开始



四:include标签

如果有多个配置文件,可以在主配置文件中加载其他配置文件



常量配置


默认的常量配置在struts核心包中default.properties

修改常量配置顺序及加载顺序

对于常量的配置,默认加载的是struts核心包中的default.properties,如果通过以下的三项进行配置,就会按照默认1---》2----》3的顺序加载,后面设置的常量会覆盖之前设置的常量



1:在struts.xml文件中,在struts的根标签下,书写constant标签进行配置,在项目中主要使用这种方式


2:在src下创建struts.properties文件,将内容复制到此文件进行修改


3:在web.xml文件中配置context-param





常用的常量设置

(1)struts.i18n.encoding=UTF-8 用于配置接收参数和向外输出中文的编码格式一般设置为 UTF-8
(2)struts.action.extension=action,, 指定访问action的路径的后缀名,使用 , 表示可以有两个后缀名,可以是action也可以是没有后缀名
(3)struts.devMode = false 指定structs是否是以开发模式运行,能够支持修改配置文件后进行热部署,所以我们可以将其设置为true




动态方法调用

如果一个业务模块有多个方法,我们可以使用动态的方法调用省略action的配置,设置动态方法调用有两种方法

(1)开启动态方法调用 <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
配置action的时候不写method,在访问的时候输入网址 http://localhost:8080/Struts2Test/命名空间/action的name!方法名


(2)通配符方式

关闭动态方法调用。对于方法名可以使用一个 * 通配符,在后面的class和method可以使用 {索引} 来读取前面的内容



struts2中的默认配置

(1)method的默认值是execute

(2)result的默认值是success

(3)result的type的默认值是dispatcher

(4)class的默认值是ActionSupport其中有execute方法的返回值是success,一般可用于通过action跳转到指定界面


(5)default-action-ref配置package下的默认的是action,当访问当前包下,如果找不到指定的action,就会自动找默认的action



Action类

action类创建的方式一共有三种类型

1:普通pojo,不需要实现接口,不需要继承任何父类,这种类的好处就是书写自由,框架代码侵入性低,缺点:对于很多struts提供的很多功能我们都需要自己去实现,实际开发中不常用

2:实现Action接口,抽象方法execute()需要去实现,并且内置了一些字符串供我们使用,实际开发中并不常用,主要起到一个规范的作用

3.继承ActionSupport父类,在ActionSupport中提供很多丰富的功能,并且实现了Action, Validateable, ValidationAware, TextProvider,LocaleProvider 这些接口为我们提供了更多的功能,并且ActionSupport内部也有很多丰富的功能,这些功能包括获取国际化信息,数据校验,默认处理用户请求等功能,实际开发过程中大多使用这种方法来创建Action类内部方法的特征为 (1).修饰符 public(2)返回值为String(3)方法名随意(4)不能有参数(5)可以抛异常









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值