简介:
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
目录:
apps:
Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以运行
里面就是一个最简单的一个项目,有strust2所需要的jar包
docs
Struts2的开发文档和API
lib
Strtus2框架的开发的jar包
src
Struts2的源码
创建一个Web工程:
加入相关的jar包
创建一个lib文件夹在WEB-INF下面(存放包)
包不用太多,多容易出错,亲身经历了一堆错误没有截图下来 大概需要的就是这些了
编写struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="struts" extends="struts-default">
<action name="hello" class="com.Hello">
<!--根据action返回的值时候跳转-->
<result name="success">/login/login.jsp</result>
</action>
</package>
</struts>
编写WEB前端控制器(在web.xml中添加过滤器)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<filter>
<filter-name>action2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>action2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
编写action类(编写excute方法反射)
public class Hello {
public String execute(){
System.out.println("12345");
return "success";
}
}
几个注意点:配置后记得重启tomcat服务器,有时候启动的时候找不到类的情况 ctrl+alt+shift+s调出Project Structure(IDEA的方法)选择Artifacts右边选中右击文件夹put into output root 把包添加到项目中
加载文件顺序
配置中的Package
配置Action
配置常量
web.xml中的
<!--<init-param> <param-name>struts.action.extension</param-name> <param-value>java</param-value> </init-param>-->
struts.xml的
<struts> <constant name="struts.action.extension" value="php" /> <package name="struts" extends="struts-default" namespace="/login"> <action name="hello" class="com.Hello"> <!--根据action返回的值时候跳转--> <result name="success">/login/login.jsp</result> <result name="error">/login/login.jsp</result> </action> </package> </struts>
include的用法(多人同个项目的时候可以防止被改乱)
<include file="a.xml" />