Struts2 项目搭建

2018-09-28  本文已影响0人  asing1elife

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

更多精彩

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

  1. 这个好像没啥好说的

引入以下 jar 包到 lib 目录中

在 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;
    }

}
上一篇 下一篇

猜你喜欢

热点阅读