Struts2使用须要用到两个配置文件html
struts.xml : Struts2本身的配置文件,用来配置Actionjava
web.xml : 用来加载Struts2框架web
struts.xml是Struts2默认的文件名,通常不会更改。apache
真正的项目中不会只用struts.xml一个配置文件,由于一个配置文件会形成配置文件过于臃肿, 会按照模块进行拆分。服务器
struts.xml |-struts-user.xml |-...
如下是struts.xml和struts-user.xml的详细配置及解释app
struts.xml框架
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 开发者模式:自动从新加载。 每次修改XML配置时,不用重启服务器。默认:false--> <constant name="struts.devMode" value="true" /> <!-- URL中的动做扩展名: http://localhost:8080/StrutsDemo/User/login.html 不须要扩展名时,value="" :http://localhost:8080/StrutsDemo/User/login --> <constant name="struts.action.extension" value="html" /> <!-- 根据模块将struts.xml文件也分红多个, 分放在不一样的包下 --> <include file="config/struts-user.xml"></include> </struts>
struts-user.xmljsp
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- name:包名 namespace:命名空间 (通常状况 包名与命名空间名字一致, 命名空间首字母大写) http://localhost:8080/StrutsDemo/User/login extends:继承 <parkage name="defalut" namespace="/" extends="struts-defalut"></parkage> --> <parkage name="user" namespace="User" extends=struts-default""> <!-- methord:指定须要执行的方法名, 默认执行execute()方法 --> <action name="login" class="com.main.java.action.user.LoginAction" methord=""> <!-- 方法返回字符串:return SUCCESS; --> <result name="SUCCESS">welcom.jsp</result> <result name="Error">error.jsp</result> <!-- type:redirect重定向,默认转发方式 --> <result name="INDEX" type="redirect">index/indexAction</result> </action> </parkage> </struts>
全部的MVC框架都须要web应用加载一个核心控制器。ide
对于struts2而言,须要加载FilterDispatch,只要加载了FileterDispatch,FileterDispatch就会自动加载Struts2框架url
因此只须要在web.xml中配置FileterDispatch就能够了
具体配置详解以下:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <filter> <!-- 配置Struts2核心Filter的名字 --> <filter-name>struts2</filter-name> <!-- 配置Struts2核心Filter的实现类 --> <!-- FilterDispatch:在Struts2.1.3中已经被废弃 --> <!-- Struts版本 >= 2.1.3 建议使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFileter--> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <!-- 配置Struts2框架默认加载的Action包结构,能够没有。 --> <init-param> <param-name>actionPackages</param-name> <param-value>org.apache.struts2.showcase.person</param-value> </init-param> <!-- 配置Struts2框架的配置提供者类,能够没有 --> <init-param> <param-name>configProviders</param-name> <param-value>lee.MyConfigurationProvider</param-value> </init-param> </filter> <!-- 配置Filter拦截的URL --> <filter-mapping> <!-- 配置Struts2的核心FilterDispatcher拦截全部用户请求 --> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
为Filter配置初始化参数时,其中有3个初始化参数有特殊意义
还能够在此处配置Struts2常量
<init-param> <param-name>常量名</param-name> <param-value>常量值</param-value> </init-param>