Unmi 的 Struts2 学习笔记(三)

连续几日熬夜,以致左胸又起闷痛感,何来如此辛苦?不由自忖,人生至今,印象中从来就没有过安逸与幸福感。常要回避刺疼。

1. WebWork 的核心控制器是 ServletDispatcher,映射到 *.action 的 <url-pattern> 即可。在 WebWork 与 Struts2 的 struts.xml 和 struts.properties 相对应的分别是 xwork.xml 和 webwork.properties,文件内容几乎一样,只几个关键字的差异。

2. Struts2 的 struts.xml 中 <action ../> 的 name 属性相当于 struts1 的 <action ../> 的 path 属性,但在这里不需要以 "/" 开始。

3. Action 中使用业务逻辑组件实例时,通常不直接 New,而会通过工厂方法或 IOC 容器。虽然 WebWork 有 IOC 容器,但 Struts2 通常会使用 Spring 的 IOC。

4.  可把 struts.xml 拆成多个文件,如 struts-part1.xml、struts-part2.xml ... 等,然后在 struts.xml 中逐个 <include file="struts-part1.xml"/>、<include file="struts-part1.xml"/> ... 即可。看看 struts2-core-x.x.x.jar 中的 struts-default.xml 为你内建了多少东西吧。

5. Struts2 的官方说是它要求在支持 Servlet2.4/JSP2.0 的容器中运行,不过我仍然把那个简单的例子(web.xml 中用 web-app_2_3.dtd) 放到 Tomcat 4.1.30(支持到 Servlet2.3/JSP1.2) 下运行了一番,能正常工作,不知可能产生的问题有哪些。

6. Struts2 还提供一种类似 Eclipse 那种可插拔的方式来安装插件,看到下载的 Struts2 的 lib 目录下有好多 struts2-xxx-plugin.jar,这些包中都有一个 struts-plugin.xml(就是一个 struts.xml 配置文件),当把 struts2-xxx-plugin.jar 拷入到 WEB-INF/lib 下,这个 struts-plugin.xml 就会自动被加载。你也可以像这样做自己的插件包。struts.properties 中属性 struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml。

7.  struts.properties 中本人认为比较重要的属性 struts.action.extension、struts.serve.static.browserCache、struts.enable.SlashesInActionNames、struts.devMode、struts.i18n.reload、struts.configuration.xml.reload、struts.custom.i18n.resources、struts.i18n.encoding。好多属性值都支持逗号分隔的多个值。默认的属性配置在 default.properties。

8. 默认情况,*.action 请求交给 Struts2 处理,你也可以改成其他扩展名,只要改 struts.properties 中的 struts.action.extension 属性值,如 struts.action.extension=unmi,action,则*.unmi和*.action都会被 Struts2 处理了。

9. Struts2 比起 Struts1 来在开发时不仅改了 struts.xml 不用重启应用,就连改了国际化资源文件都可以不需要重启应用。设置 struts.i18n.reload = true 即可。

10. Struts2 提供了两种方式来管理 Struts2 属性,既可以写在 struts.properties,也可以写在 struts.xml 中配置为 constant 元素,如 <constant name="struts.i18n.reload" value="true"/>。相信大多数人还是倾向于写在 struts.properties 中。

本文链接 https://yanbin.blog/unmi-study-struts2-3/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

6 Comments
Inline Feedbacks
View all comments
BeanSoft
16 years ago

别熬夜 小心气胸 最好去医院体检一下呗

久城
16 years ago

同上,深有所感。

征途私服
16 years ago

同上,深有所感。

隔叶黄莺
16 years ago

google 了一下气胸,症状态还有些偏离。原来笑别人年青时健康换钱,老后钱换健康,也许大多人亦如此。谁人真想这么呢,无非迫于生存压力,命运使然,社会使然。

征途私服
16 years ago

同上,深有所感。

duoduo
duoduo
15 years ago

@隔叶黄莺

文笔很好,让我开始怀疑你是否文科出身!