本系列是本人在学习《Struts2实战》一书时的学习笔记,并结合当前Struts2的最新版本(2.3.16.2)做的一些更新和修正。如果有错漏之处,还请各位大侠多多指正。
一、web.xml (注意filter-class改用新的类)
位置:/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_1" version="3.0">
<display-name>hello-annotated</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/index.html</welcome-file>
</welcome-file-list>
</web-app>
二、struts.xml
位置:/WEB-INF/classes/struts.xml(在eclipse中可以放在java的源(src)目录下)
1. 配置文件统一配置Action
2. 零配置,约定大于配置,Java注解大于配置
(0)一个Action类,如果使用了注解进行Action配置,则xml文件中关于此Action的配置将被全部忽略。
(1)加入依赖包:struts2-convention-plugin-2.3.16.2.jar
(2)关于Action搜索根包的约定:struts, struts2, action , actions
(3)关于Action类的约定:任何在搜索根包及其子包之内的,符合以下条件之一的类:
a) 类名以Action结尾的类
b) 实现com.opensymphony.xwork2.Action接口的类,或继承com.opensymphony.xwork2.ActionSupport的类
(4)URL命名规则(包括Action,result和命名空间):所有大写字母前加"-",并全部转为小写,例如:MyCar -> my-car
(5)关于命名空间的约定:从搜索根包开始(不含根包)到包结束
(6)关于Action的URL命名规则:除执行“URL命名规则”之外,(如果有)去掉未尾的Action,例如:MyBookAction -> my-book
(7)关于结果页面的约定:默认的结果页面根目录:/WEB-INF/content ,默认的result映射路径是:结果页面根目录/命名空间/Action名-结果字符串.扩展名。例如:Action类:notebook.action.a.MyBookAction的success结果的默认映射路径是:/WEB-INF/content/a/my-book-success.jsp
(8)可以通过配置常量的方式改变约定(详见附表):
(struts.convention.action.packages),指定Action搜索根包,多个以逗号分隔:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.convention.action.packages" value="manning" />
</struts>
三、配置查询(浏览)插件:
1. 加入依赖包:struts2-config-browser-plugin-2.3.16.2.jar
2. 打开http://localhost:8080/CONTEXT/config-browser/index.action,即可查看Struts的action配置情况。