教你如何配置Struts2 web.xml文件

 我来答
天罗网17
2022-09-30 · TA获得超过6161个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:71.6万
展开全部

   Struts 的基本配置

  前面大致了解了Struts 框架的基本内容 但这些基本内容都必须建立在Struts 的配置文件基础之上 这些配置文件的配置信息也是Struts 应用的核心部分

   配置Struts web xml文件

  任何MVC框架都需要与Web应用整合 这就不得不借助于Struts web xml文件 只有配置在Struts web xml文件中Servlet才会被应用加载

  通常 所有的MVC框架都需要Web应用加载一个核心控制器 对于Struts 框架而言 需要加载FilterDispatcher 只要Web应用负责加载FilterDispatcher FilterDispatcher将会加载应用的Struts 框架

  因为Struts 将核心控制器设计成Filter 而不是一个普通Servlet 故为了让Web应用加载FilterDispacher 只需要在Struts web xml文件中配置FilterDispatcher即可

  配置FilterDispatcher的代码片段如下

  

  < ! 配置Struts 核心Filter的名字 >struts< /FILTER NAME> < FILTER CLASS> apache struts dispatcher FilterDispatcher < /FILTER CLASS>< INIT PARAM>< ! 配置Struts 框架默认加载的Action包结构 >< PARAM NAME>actionPackages< /PARAM NAME>< PARAM VALUE> apache struts showcase person< /PARAM VALUE>< /INIT PARAM>< ! 配置Struts 框架的配置提供者类 >< INIT PARAM>< PARAM NAME>configProviders < /PARAM NAME>< PARAM VALUE>lee MyConfigurationProvider< /PARAM VALUE>< /INIT PARAM>< /FILTER>   

  正如上面看到的 当配置Struts 的FilterDispatcher类时 可以指定一系列的初始化参数 为该Filter配置初始化参数时 其中有 个初始化参数有特殊意义

  config 该参数的值是一个以英文逗号( )隔开的字符串 每个字符串都是一个XML配置文件的位置 Struts 框架将自动加载该属性指定的系列配置文件

  actionPackages 该参数的值也是一个以英文逗号( )隔开的字符串 每个字符串都是一个包空间 Struts 框架将扫描这些包空间下的Action类

  configProviders 如果用户需要实现自己的ConfigurationProvider类 用户可以提供一个或多个实现了ConfigurationProvider接口的类 然后将这些类的类名设置成该属性的值 多个类名之间以英文逗号( )隔开

  除此之外 还可在此处配置Struts 常量 每个 元素配置一个Struts 常量 其中

  子元素指定了常量name 而

  子元素指定了常量value

  提示   关于Struts 常量的讲解 请参阅本书的 节

  在Struts web xml文件中配置了该Filter 还需要配置该Filter拦截的URL 通常 我们让该Filter拦截所有的用户请求 因此使用通配符来配置该Filter拦截的URL

  下面是配置该Filter拦截URL的配置片段

  

  < ! 配置Filter拦截的URL >< FILTER MAPPING>< ! 配置Struts 的核心FilterDispatcher拦截所有用户请求 >< FILTER NAME>struts< /FILTER NAME>/*< /URL PATTERN>< /FILTER MAPPING>

  配置了Struts 的核心FilterDispatcher后 基本完成了Struts 在web xml文件中的配置

  如果Web应用使用了Servlet 以前的规范 因为Web应用不会自动加载Struts 框架的标签文件 因此必须在Struts web xml文件中配置加载Struts 标签库

  配置加载Struts 标签库的配置片段如下

  

  < ! 配置Struts 标签库的URI >/s< /TAGLIB URI>< ! 指定Struts 标签库定义文件的位置 >< TAGLIB LOCATION>/WEB INF/struts tags tld< /TAGLIB LOCATION>< /TAGLIB> 

  在上面配置片段中 指定了Struts 标签库配置文件物理位置 /WEB INF/struts tags tld 因此我们必须手动复制Struts 的标签库定义文件 将该文件放置在Web应用的WEB INF路径下

  如果Web应用使用Servlet 以上的规范 则无需在Struts web xml文件中配置标签库定义 因为Servlet 规范会自动加载标签库定义文件

  提示   Struts 的标签库定义文件包含在struts core jar文件里 在struts core jar文件的META INF路径下 包含了一个struts tag tld文件 这个文件就是Struts 的标签库定义文件 Servlet 规范会自动加载该标签库文件 对于Servlet 以上的规范 Web应用自动加载该标签库定义文件 加载struts tag tld标签库定义文件时 该文件的开始部分包含如下代码片段

  

  < TAGLIB>< ! 定义标签库的版本 >< TLIB VERSION> < /TLIB VERSION>< ! 定义标签库所需的JSP版 >< JSP VERSION> < /JSP VERSION>< SHORT NAME>s< /SHORT NAME> /struts tags< /URI> < /TAGLIB>

lishixinzhi/Article/program/Java/ky/201311/28777

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式