文章目录
更多Struts2在框架开发
1 Struct2 ?
Struct2是一个基于MVC设计模式的Web应用层框架。
Struct2中用action取代了Servlet,action是类,里面对Servlet的一些操作进行了封装,可以大大简化代码的复杂度,已经解决了传统Servlet的一些弊端,需要注意的是,action并不是一个脱离Servlet的东西,其底层依然是Servlet 。
2 一个案例入门Struct2
前记 : Struct2开发包与资源下载 , 本文用struct-2.3.24版本 。
案例目标: 使用Struts2框架完成用户的添加功能,使用普通Servlet完成用户列表功能(下一篇中讲解struts2搭配ognl操作值栈的方法)。
2.1 搭建项目环境
Struts2用到的jar包: 导入struts-2.3.24\apps\struts2-blank.war\WEB-INF\lib
下的所有jar包 。
JSTL表达式的jar包(myEclipse不需要) : 自行下载或文尾下载项目中有。
MySQL,创建数据库: create database db_strut ;
DAO采用JPA的开发https://blog.csdn.net/zyqblog/article/details/80725763
User实体类注解配置如下:
/**
* User实体类
* @author zhaoyuqiang
*
*/
@Entity
@Table(name="tb_user")
public class User {
@Id
@Column(name="user_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long userId;
@Column(name="user_name")
private String userName ;
@Column(name="user_age")
private Integer userAge ;
@Column(name="user_phone")
private String userPhone ;
/*
* 此处省略getter和setter方法
*/
}
2.2 配置核心过滤器(web.xml)
过滤器在服务器启动时创建,创建时执行init()方法,该方法会加载配置文件(包含自己创建的struts.xml,以及web.xml和自带的配置文件等)
web.xml
<!--导入约束,该约束在struct-2.3.24\apps\struts2-blank.war\WEB-INF\web.xml中有-->
<web-app id="WebApp_9" version="2.4" 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">
<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>
</web-app>
在org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
上ctrl+点击,导入struct-2.3.24\src文件夹。
2.3 添加用户.jsp与用户列表.jsp
addUser.jsp
<form action="${pageContext.request.contextPath}/user_addUser.action" method="post">
用户名:<input type="text" name="userName" /><br>
年 龄:<input type="text" name="userAge" /><br>
电 话:<input type="text" name="userPhone" /><br>
<input type="submit" value="添加"/>
</form>
listAll.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefi