Struts2配置文件配置.doc
文本预览下载声明
Struts2配置文件的配置
在Struts2中的核心文件也就是struts.xml配置文件,如果这个配置文件出现错误,那么其他不管你做了多少工作都是没有用的,这个配置文件由开发人员编写的,该配置文件包含action、result等配置信息。主要负责管理struts2框架的业务控制器Action
整个struts2一种要存在3个xml配置文件:struts.xml、struts-default.xml、stuts-plugin.xml文件
struts.xml文件是由开发人员负责编写的
struts-defaule.xml文件是struts2默认的配置文件,为矿建提供默认的配置,该配置文件会自动加载,不需要开发人员编写,只是在编写struts.xml文件时在package元素中指定extends=struts-default属性就能加载该配置文件
struts-plugin.xml是struts2的插件使用的配置文件,如果不是开发插件的话,不需要编写该文件
Struts2的处理流程:
Jsp/HtmlStrutsPrepareAndExecuteFilter用户请求
Jsp/Html
StrutsPrepareAndExecuteFilter
Interceptor
Interceptor
Struts2内置的一些拦截器或用户自定义的拦截器
Action
Action
用户编写的Action类,类似struts1中的Action
Result
Result
类似Struts1的forward
响应
StrutsPrepareAndExexcuteFilter是Struts2框架的核心控制器,它负责拦截器由url-pattern/*url-pattern指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求,默认情况下,如果用户请求的路径不带后缀或者后缀一.action结尾,这是请求将被转入Struts2框架处理,否则Struts2框架将掠过请求的处理,当请求转入Struts2框架时会先经过一系列拦截器,然后在到Action,与Struts1不同,Struts2对用户的每次请求都会创建一个Action,所以Struts2中Action是线程安全的,Struts1是使用单例模式的
Struts2的Action
Action除妖有三个作用:
封装工作单元,可以把Action看做是控制器的一部分,它的主要职责就是控制业务逻辑
数据转移的场所
返回结果字符串
动态方法的调用
动态方法的调用是在Action的名字中使用感叹号(!)来标识要调用的方法名称,格式为actionName!methodName.action
使用动态方法的调用可能会带来安全隐患(通过URL可以执行Action中的任意方法),所以在确定使用动态方法调用时,应该确保Action中的所有方法都是普通的、开放的方法,基于这个原因,Struts2框架提供一个属性的配置,用于禁用动态调用,可以在struts.xml文件中,通过constant元素将属性struts.enable.DynamicMethodInvocation设置为false,来禁止调用动态方法
使用方法为:
constant name=struts.enable.DynamicMethodInvocation value=false/
通配符的使用
在配置action../元素时,需要指定name、class和method属性,其中name属性可支持通配符,然后可以在class、method属性中使用表达式,这种使用通配符的方式是另一种形式的动态方法调用,通配符用星号(*)表示,用于配置0个或多个字符串,在配置Action是,可以通过元素的name属性中使用星号来匹配任意的字符串
如:
action name=*Users class=com.jbit.struts.action.UsersAction method={1}
result/page/{1}_success.jsp/result
result name=input/page/{1}.jsp/result
/action
配置默认的Action
如果我们请求一个不存在的Action,那么结果将会是在页面呈现HTTP404错误,为了解决这个问题,Struts2框架允许指定一个默认的Action,即如果没有一个Action匹配请求,那么默认的Action将会被执行
配置默认的Action通过default-action-ref /元素完成,每个default-action-ref/元素配置一个默认的Action。
默认的配置如下:
struts
package name=default extends=struts-default
显示全部