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;
}
}
最后效果:
所有分类>类型:
电脑>品牌分类:
冰箱>品牌分类:
电视机>品牌分类:
洗衣机>品牌分类:
数码相机>品牌分类: