Struts2 项目搭建

Struts2 作为一个应用开发框架,在项目中引入需要如下步骤

更多精彩

创建一个 Web Project 并添加默认的 web.xml 文件

  1. 这个好像没啥好说的

引入以下 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 文件

  1. 要让 Struts2 支持异步的 json 数据访问在 <package>extend 属性中添加 json-default
  2. 添加 struts2-json-plugin-2.5.12.jar
  3. 在对应的 <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>

接收/显示数据

  1. Struts2 的特点在于对数据的接收/显示进行封装
  2. 要获取页面传递到 action 的参数,只需要在 action 中定义对应名称的私有属性,并提供 setter 方法即可
  3. 要将数据显示到页面中,只需要在 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;
    }

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,936评论 6 342
  • 提到一姐杨澜,第一印象是什么? 主持人、媒体人、传媒企业家、慈善家、阳光媒体集团主席和阳光文化基金会主席,或者是《...
    醉雁临江阅读 543评论 0 0
  • 我爱过一个船员,他放荡不羁爱自由,没有什么能牵绊住他的心。家里的摆放着从澳大利亚带回来的羊毛制品;爱尔兰的威士忌;...
    黑莉与咖啡阅读 185评论 0 1
  • 我理解是把自己的行动和思想与公司的统一起来
    张伟kk阅读 182评论 0 0