"Struts2.1学习笔记"
Struts2是一个强大的MVC框架,用于构建企业级Java web应用程序。这篇笔记主要涵盖了Struts2的基本概念和操作,包括配置文件、命名空间、Action处理以及namespace的特性。
1. Struts2配置文件`Struts.xml`中的`namespace`属性是用来定义访问路径的,它决定了Action的URL前缀。例如,如果namespace设为"/admin",那么对应的Action可以通过"http://localhost:8080/yourapp/admin/youraction"来访问。
2. 当修改了Action的`name`属性后,由于默认的部署机制,可能不会立即生效。要解决这个问题,可以在Struts2的配置中设置`devMode`为`TRUE`。这是一个开发模式开关,当开启时,Struts2会自动刷新配置,避免了每次修改后都需要重新部署应用。
3. 在使用IDE编辑XML文件时,如果遇到`<`字符没有代码提示的问题,可能是DTD(文档类型定义)未正确配置。可以手动添加XMLCatalog,指向Struts2的DTD文件,如`http://struts.apache.org/dtds/struts-2.0.dtd`,并指定对应的jar文件位置。
4. Struts2的工作流程大致如下:用户在浏览器中发起HTTP请求,Tomcat服务器根据请求URL查找对应的web.xml配置文件,发现Struts2的过滤器`StrutsPrepareAndExecuteFilter`,该过滤器解析请求,根据namespace和Action名称从`Struts.xml`中匹配Action,并执行相应的Result,通常是返回JSP页面。
5. `namespace`的使用非常重要。如果没有定义namespace,Struts2会默认处理全局Action。如果有多个相同Action名称的情况,可以使用不同的package(包)并设定不同的namespace来区分。此外,当访问Action时,如`index.action`,后缀`.action`可以省略。
6. 如果你需要拷贝或导入他人项目,需要注意的是,可能需要修改项目的`contextroot`设置,以确保与当前工作环境兼容。此外,避免类路径冲突,特别是JRE系统库的位置,确保每个项目使用独立的JRE版本。
7. `<result>`标签用于定义Action执行成功后的跳转页面,默认结果名称是`success`。这意味着如果没有显式定义其他结果,Action执行成功后将会跳转到名为`success`的Result所指定的页面。
通过这篇笔记,我们可以了解到Struts2的核心配置和工作原理,这对于理解和使用Struts2框架进行Java web开发是非常有帮助的。深入学习这些概念和技巧,能够提升你在开发过程中解决问题的能力。