Struts 2 核心技术----搭建过程以及一个实例(1)
一、使用web.xml配置struts2?实现web项目struts?2?应用
?
在现实开发的web项目中,都是使用web.xml来实现MVC框架的应用。既然struts?2也是MVC框架,因此在web.xml中必定要配置struts?2才能实现应用。
技术要点:
1、如何加载FilterDispatcher过滤器
2、如何使用FilterDispatcher过滤器拦截URL
Web.xml文件究竟是什么样子?它都包含哪些配置?下面我们给出一个含有基本配置的web.xml文件。
Eg:
<?xml?version="1.0"?encoding="UTF-8"?>
<web-app?version="2.5"?
xmlns="http://java.sun.com/xml/ns/javaee"?
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<!--?过滤器名字?-->
<filter-name>Struts2</filter-name>
<!--?过滤器支持的Struts2类?-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!--?过滤器拦截名字?-->
<filter-name>Struts2</filter-name>
<!--?过滤器拦截文件路径名?-->
<url-pattern>/*</url-pattern>
</filter-mapping>
??<welcome-file-list>
????<welcome-file>index.jsp</welcome-file>
??</welcome-file-list>
</web-app>
?
二、使用配置文件struts.xml实现页面导航定义
?
Struts2中核心的是Action,而Action的核心是struts.xml
文件,struts.xml集中了所有页面的导航定义。对于大型的web项目,通过配置文件即可迅速把握其脉络,不管是对前面的开发,还是对后期的维护或升级都是大有用意。掌握struts.xml是掌握struts2的关键所在。
技术要点:
1、XML文件字符编码定义和DTD文件声明。
2、Global-results映射定义(全局导航)
3、Package?映射定义,包含的Action各属性介绍
?
Struts2中的配置文件太多,前面通过web.xml了解了过滤器的配置,下面我们介绍下struts.xml文件!
Eg:
<?xml?version="1.0"?encoding="UTF-8"??>
?
<!--?声明DTD文件?-->
?
<!DOCTYPE?struts?PUBLIC
????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
????"http://struts.apache.org/dtds/struts-2.0.dtd">
?<struts>
?<!--?Action?所在包定义???name为项目名,扩展默认文件struts-default.xml配置文件-->
?
?<package?name="Struts2Test"?extends="struts-default">
?
?<!--?全局导航页面定义?-->
?
?<global-results>
? <result?name="global">/login.jsp</result>
?</global-results>
?
?<!--?Action?名字,类以及导航页面定义?-->
?
? <!--通过Action类处理才导航的Action?定义??-->
?
? <action?name="Login"?class="struts.action.LoginAction">
? <result?name="input">/login.jsp</result>
? <result?name="success">/index.jsp</result>
? </action>
?
? <!--?直接导航的Action定义?-->
?
? <action?name="index">
? <result>/login.jsp</result>
? </action>
?
</package>
?</struts>