版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82862187
Struts2 作为一个应用开发框架,在项目中引入需要如下步骤
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
创建一个 Web Project 并添加默认的 web.xml 文件
- 这个好像没啥好说的
引入以下 jar 包到 lib 目录中
- commons-fileupload-1.3.3.jar
- commons-lang3-3.6.jar
- freemarker-2.3.23.jar
- javassist-3.20.0-GA.jar
- log4j-api-2.8.2.jar
- ognl-3.1.12.jar
- struts2-core-2.5.12.jar
在 web.xml 中添加 filter 配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在 src 目录下添加 struts.xml 文件
- 要让 Struts2 支持异步的 json 数据访问在
<package>
的extend
属性中添加json-default
- 添加
struts2-json-plugin-2.5.12.jar
包 - 在对应的
<action>
请求的<result>
中添加type="json"
属性,并删除页面内容
<?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="default-package" extends="struts-default, json-default">
<!-- name 表示请求路径 -->
<!-- class 表示请求路径对应的处理类 -->
<!-- method 表示处理类中对应的方法 -->
<action name="category" class="online.shixun.hpeu.action.GoodsCategoryAction" method="list">
<result name="success">/WEB-INF/views/category.jsp</result>
</action>
<!-- 异步获取商品描述 -->
<action name="description" class="online.shixun.hpeu.action.GoodsAction" method="description">
<result name="success" type="json"></result>
</action>
</package>
</struts>
接收/显示数据
- Struts2 的特点在于对数据的接收/显示进行封装
- 要获取页面传递到 action 的参数,只需要在 action 中定义对应名称的私有属性,并提供 setter 方法即可
- 要将数据显示到页面中,只需要在 action 中定义对应名称的私有属性,并提供 getter 方法即可
public class GoodsAction {
private GoodsServiceImpl goodsService = new GoodsServiceImpl();
// 从页面接收商品类别id
private Long categoryId;
// 从页面接收商品id
private Long goodsId;
// 从DB获取商品列表,用于展示到页面上
private List<GoodsModel> goods;
// 从DB获取商品描述信息,用于展示到页面上
private String description;
/**
* 加载商品列表页
* @return
*/
public String list() {
goods = goodsService.getGoodsByCategoryId(categoryId);
return "success";
}
/**
* 获取商品描述信息
* @return
*/
public String description() {
// 通过商品id获取商品描述信息
description = goodsService.getGoodsById(goodsId).getDescription();
return "success";
}
public void setCategoryId(Long categoryId) {
this.categoryId = categoryId;
}
public void setGoodsId(Long goodsId) {
this.goodsId = goodsId;
}
public String getDescription() {
return description;
}
public List<GoodsModel> getGoods() {
return goods;
}
}