1、Struts2框架的学习路线
(1)Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写。
(2)Struts2的数据的封装、结果页面配置。
(3)Struts2的值栈和OGNL表达式。
(4)Struts2的标签库。
2、什么是Struts2?
Struts2是一个基于MVC设计模式的Web层框架。 Struts2的内核相对于Struts1来讲已经发生巨大变化。
3、常见的web层框架有哪些?
Struts2 Struts1 Webwork SpringMVC
4、Web层框架基于前端控制器模型设计
下载Struts2的开发环境 http://struts.apache.org/
解压Struts2开发包
apps :Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。docs :Struts2的开发文档和APIlib :Strtus2框架的开发的jar包src :Struts2的源码创建web项目,引入jar包 引入jar包 struts-blank项目下找jar包
1、创建一个JSP页面
<h3>Struts2的入门</h3> <a href="${ pageContext.request.contextPath }/hello.action">入门案例</a>2、编写Action的类
// 入门的Action类 public class HelloAction { // 提供一个方法,方法的签名固定格式:public String execute(); public String execute() { System.out.println("Action中的execute()方法执行了。。。"); return null; } }3、对Action类进行配置
在src下创建(提供)名称叫做struts.xml的配置文件,文件名固定。
<?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> <!-- Struts2为了管理Action的配置,是通过包进行管理的 --> <package name="demo1" extends="struts-default" namespace="/"> <!-- 在包里面配置Action标签。name:是访问路径,去掉后缀名。class:是Action类名的全路径--> <action name="hello" class="com.pipi.struts.test01.HelloAction"> </action> </package> </struts>4、配置前端控制器(也叫:核心过滤器)
在web.xml中配置核心过滤器:
<!-- 配置核心过滤器,过滤器类名是对应引入的jar包里面的 --> <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>5、改写Action中的方法的返回值
public String execute() { System.out.println("Action中的execute()方法执行了。。。"); return "success"; }6、改写struts.xml的配置
<struts> <package name="demo1" extends="struts-default" namespace="/"> <action name="hello" class="com.pipi.struts.test01.HelloAction"> <!-- 配置页面跳转 --> <result name="success">/demo1/success.jsp</result> </action> </package> </struts>7、编写跳转的页面 success.jsp
<body> <h3>跳转成功的页面</h3> </body>配置完毕,可以在浏览器输入url了。
8、分析执行过程
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器会实现部分功能),再执行目标Action,根据Action的返回值,进行页面跳转。