Struts基础应用3——iterator标签使用

struts2标签

struts2提供了丰富的标签,大致分为两类,一类是用户界面标签,也称为UI标签;另一类是非用户界面标签,也称非UI标签。

UI标签非UI标签
表单标签:form,password..数据标签:与访问ValueStack相关
非表单标签:页面上的树,tab..控制标签:集合操作、条件逻辑
Ajax标签

标签iterator的使用

本次使用的代码框架为:

  • action (开发控制层)
    • ProductInfoAction
  • dao (开发数据访问层)
    • TypeDAO (接口)
    • dao.impl
      • TypeDAOImpl (接口实现)
  • entity(实体类)
    • Type

以及index.jsp和struts.xml。

index.jsp,#是ongl表达式,详见:https://www.cnblogs.com/tilney/p/3242661.html

<%@page language="java" pageEncoding="utf-8" import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib prefix="s" uri="/struts-tags" %><!-- 加载struts2标签库 -->
<html>
<body>
    <div><span>所有分类>类型:</span></div>
    <s:iterator var="typeItem" value="#request.typeList">
        <div>
            <p> ${typeItem.name }>品牌分类:</p>
        </div>
    </s:iterator>
    </div>
</body>
</html>

Struts2 的Action中若希望访问Session对象,可采用两种方式:
1、从ActionContext中获取;
2、实现SessionAware接口。
这里采用第二种。

ProductInfoAction.java:

package com.digital.action;

import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.RequestAware;
import com.digital.dao.TypeDAO;
import com.digital.dao.impl.TypeDAOImpl;
import com.digital.entity.Type;
import com.opensymphony.xwork2.ActionSupport;
public class ProductInfoAction extends ActionSupport implements RequestAware {

    Map<String, Object> request;

    @Override
    public void setRequest(Map<String, Object> request) {
        this.request=request;       
    }

    public String list(){
        TypeDAO typeDAO=new TypeDAOImpl();
        List<Type> typeList=typeDAO.getAll();
        if (typeList.size()>0) {
            request.put("typeList", typeList);
        }       
        return "index";
    }
}

TypeDAO.java

package com.digital.dao;

import java.util.List;

import com.digital.entity.Type;

public interface TypeDAO {
    public List<Type> getAll();
}

TypeDAOImpl.java

package com.digital.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.digital.dao.BaseDAO;
import com.digital.dao.TypeDAO;
import com.digital.entity.Type;

public class TypeDAOImpl extends BaseDAO implements TypeDAO {

    Connection conn=null;
    PreparedStatement pstmt=null;
    ResultSet rs=null;

    @Override
    public List<Type> getAll() {
        List<Type> typeList=null;
        typeList=new ArrayList<Type>();
        String sql="select * from type";
        try {
            conn=getConnection();
            pstmt=conn.prepareStatement(sql);
            rs=pstmt.executeQuery();
            Type type=null;
            while (rs.next()) {
                type=new Type();
                type.setId(rs.getInt("id"));
                type.setName(rs.getString(2));
                typeList.add(type);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            closeAll(conn, pstmt, rs);
        }       
        return typeList;
    }

}

struts.xml加上:

<action name="list" class="com.digital.action.ProductInfoAction" method="list">
    <result name="index">/index.jsp</result>
</action>

Type.java

package com.digital.entity;

public class Type {

    private int id;
    private String name;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }



}

最后效果:

所有分类>类型:
电脑>品牌分类:
冰箱>品牌分类:
电视机>品牌分类:
洗衣机>品牌分类:
数码相机>品牌分类:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值