Struts2 第三章 配置文件

更新时间:2023-05-14 04:32:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 Struts2 配置文件

1.回顾

1) Struts2核心的API,Action接口和ActionSupport

2) Struts2接收用户输入的几种方式

3) Struts2访问ServletAPI

2.目标和重点

1) Struts配置文件分类,各个配置文件的作用

2) stuts.xml配置文件详解,重点掌握配置namespace,Action和result namespace名称空间的概念,配置名称空间和多配置文件方式

Action掌握method配置,动态配置和通配符配置

Result掌握返回的结果类型,包括配置全局结果

3.难点

1) 需要熟练掌握struts.xml的配置

namespace名称空间,多配置文件

Action控制器配置,方法配置,动态配置和通配符配置方法和规则 配置返回结果,结果的类型,包括配置全局返回结果

4.知识点内容讲解

4.1 配置文件分类

1)加载struts框架的配置在web.xml文件中,增加一个Struts2的过滤器 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

2)Struts2的属性配置文件struts.properties,用来定义Struts的属性,可以参考jar下的defautl.properties,这个文件主要是为了向前兼容

3) struts-default.xml,struts自带的配置文件,配置了很多基本的功能,比如类型转换,新建的struts配置必须继承自这个配置文件才能拥有struts提供的功能。

4) struts.xml文件,在应用中的struts框架配置文件,是由用户定义的文件,控制器,视

图结果,拦截器,类型转换,异常,所有MVC需要的组件都可以在这个文件里配置。这个也是必须熟练掌握的配置文件

4.2struts.xml配置文件

Struts.xml文件时Struts核心的内容,所有的组件都是通过配置文件组装的,如果配置出错,工程就运行不起来,这章节先熟悉以下配置,还有拦截器配置,异常配置,类型转换配置,国际化等在后面章节在介绍。

常量配置

可以定义web应用的常量,比如开发模式,国际化编码字符等

包配置

包的概念同java的包类似,主要的作用是对模块和功能的划分

名称空间配置

假设工程很大以后,必须对模块有清晰的划分,包括文件夹,文件,名称空间可以划分出模块,使用名称空间的包模块在访问时需要加路径。

比如system系统管理包,在访问时地址是 http://127.0.0.1:8080/web/system

包含配置

假设配置的控制器非常多,把所有的配置都放在struts.xml文件中是不合理的,Struts2允许我们创建除了struts.xml主配置文件外,还可以增加其他的配置文件,在struts.xml文件中包含进来,被包含的文件必须也是符合struts2的DTD文档格式的。

控制器配置

控制器的配置是最复杂的配置内容,也是重要要掌握的配置内容,通常情况下,一个Action类,会在struts.xml文件中加入这个控制器的映射和结果,最简单的方式就是一个控制器一个Action的映射配置,不过这样做配置文件会非常大,可以采用动态调用或通配符的方式减少配置

4.2.1控制器配置

a) Method配置

一般一个控制器就需要配置上一个Action,最后的结果是导致配置文件庞大,action类也很多,有没有办法减少配置文件和类文件呢?

比如当对一个对象有增删改查操作时,往往是配置4个以上的控制器和操作对应,能不能只配一个呢,假设只配一个,action里的execute方法对应那个操作?Struts2提供了method属性,配置method属性可以自定义方法名,这样action不再执行execute方法,而是执行我们自定义的方法,自定义方法同样要求是必须返回字符串的。这样做就减少了action类,因为我们可以再配置文件中对同一个类使用不同的控制器映射名称,每一个控制器映射都有自己的方法。

b) 动态调用方式

Method属性配置可以减少action类的数量,那如何调用呢?一个控制器action映射非常明确,调用action名称.action就会自动执行execute方法,但现在一个action里面有很多自定义的方法,那到底该执行那一个方法?

Struts2支持采用动态调用的方式,调用格式 “action映射名称!方法名称”

演示。。。配置mehtod属性和动态调用

c) 通配符配置

使用method属性设置自定义方法,采用动态调用的方式,已经很好的解决了前面出现的问题,但是还有个问题没解决,struts.xml的配置文件依然很庞大,怎么才能减少配置呢?

在我们配置Action时,当配置很多以后会发现,他们有很多相似的地方,能不能用通配符来代替不同的地方呢?答案是可以,Struts2支持使用通配符的方式配置action的映射

Action的映射名称使用 *_*,前面一个*代表action名称,后面一个*代表方法名称

Method属性可以使用占位符{2}也就是第二个*的内容去替换method的{2} Result返回的结果也可以使用占位符,如果使用{0}.jsp,那么{0}解析最终是类名_方法名.jsp,所以采用通配符配置的方式配置action,必须命名规范。

演示。。。通配符配置和调用

d)结果类型配置

结果的配置使用result标签,返回的结果默认是dispatch类型,所以可配置的结果类型都在struts-default文件中。

常用的结果类型

当需要配置转发另一个action时可以配置redirectAction

当需要配置重定向时,可以配置redirect 默认的结果类型就是dispatch

还有有一种情况是:假设出错或登录不成功,都要返回到login.jsp页面时,可以配置全局的结果

演示…..配置各类结果

总结:在struts2的配置中,先按配置文件的种类去掌握,其中最主要的配置内容是包的名称空间,还有action映射配置,需要通过练习才能掌握好action的配置

比如设置method属性,动态调用,采用通配符配置action等。

5.作业

1) 继续改造网上书店那个项目,书上的上机练习题,第72面~78面所有上机练习题,

按照书上的要求,对上次课完成的内容补充和修改,下次课之前必须完成。

Web层struts最好是多做几遍。

本文来源:https://www.bwwdw.com/article/to7e.html

Top