Struts2中select标签选项后台传值
多表关系通过外键关联时,常会使用id表示对象之间的关系,而在显示时却常常要显示对象的名称,如果每次用到都要从数据库中查找似乎很耗费资源,那么我们可以id,name
组织成map集合,很适合在前端显示。
具体做法:
1.DAO
public Map<Integer, String> findOwners()
{ Map<Integer, String> map = new HashMap<Integer, String>(); Connection conn = C3p0Util.getConnection(); String sql = "select id,name from owner"; ResultSet rs = null; Statement stmt = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()){ Integer key = rs.getInt("id"); String value = rs.getString("name"); map.put(key, value); } } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return map; }
2.ACTION:
private Map<Integer, String> map = null; map = od.findOwners(); session.setAttribute("ow", map);
3.JSP
<s:select name="owner_id" list="#session.ow" listKey="key" listValue="value" label="主人"></s:select>
这样便实现了在选择框中显示人名,选择框向后台传的时人的id。