开发环境:Struts2.0
主要想实现的功能:使用Struts标签<s:iterator>取得Java类中返回的List对象中的值。Java代码:private List list_step;public List getList_step() {
return list_step;
}
public void setList_step(List list_step) {
this.list_step = list_step;
}public String contentStep() throws Exception{
DBConn dbconn = new DBConn(); //自定义的类,主要功能是取得数据库连接,执行SQL语句取得类型为Resultset的结果集
ResultSet rs1 = null;
try{
rs1 = dbconn.ExeQuery("Select * from view_step_bookinfo"); //dbconn.ExeQuery()是自定义类DBConn中的方法
list_step = resultSetToList(rs1); //
}catch (SQLException ex) {
System.err.println("makeItemHtmlStr.executeQuery:" + ex.getMessage());
}finally{
dbconn.CloseConn();
}
return "success";
}public List resultSetToList(ResultSet rs) throws Exception{
if (rs == null){
return Collections.EMPTY_LIST;
}
ResultSetMetaData md = rs.getMetaData();
List list = new ArrayList();
Map rowData;
int columnCount = md.getColumnCount();
while (rs.next()){
rowData = new HashMap(columnCount);
for (int i=1;i<=columnCount;i++) {
rowData.put(md.getColumnName(i),rs.getObject(i));
}
list.add(rowData);
//System.out.println( "list: " + list.toString());
}
return list;
}JSP代码:<s:iterator value="#left_step" id="" status="">
...
...
</s:iterator>
问题是:
1.不知道Java代码是否正确,List对象能够传到JSP中来,是不是需要使用Map来传递,如果需要该怎么实现?
2.JSP中的代码如何实现?<s:iterator value="#left_step" id="" status="">中value值"#left_step"和"${left_step}"有何区别?我取得的List结果集中字段名不确定,取某一行值的方法是什么,比如:left_step.Index[0].toString;之类的。对于高手来说这个问题很简单,还请高手不吝赐教。
主要想实现的功能:使用Struts标签<s:iterator>取得Java类中返回的List对象中的值。Java代码:private List list_step;public List getList_step() {
return list_step;
}
public void setList_step(List list_step) {
this.list_step = list_step;
}public String contentStep() throws Exception{
DBConn dbconn = new DBConn(); //自定义的类,主要功能是取得数据库连接,执行SQL语句取得类型为Resultset的结果集
ResultSet rs1 = null;
try{
rs1 = dbconn.ExeQuery("Select * from view_step_bookinfo"); //dbconn.ExeQuery()是自定义类DBConn中的方法
list_step = resultSetToList(rs1); //
}catch (SQLException ex) {
System.err.println("makeItemHtmlStr.executeQuery:" + ex.getMessage());
}finally{
dbconn.CloseConn();
}
return "success";
}public List resultSetToList(ResultSet rs) throws Exception{
if (rs == null){
return Collections.EMPTY_LIST;
}
ResultSetMetaData md = rs.getMetaData();
List list = new ArrayList();
Map rowData;
int columnCount = md.getColumnCount();
while (rs.next()){
rowData = new HashMap(columnCount);
for (int i=1;i<=columnCount;i++) {
rowData.put(md.getColumnName(i),rs.getObject(i));
}
list.add(rowData);
//System.out.println( "list: " + list.toString());
}
return list;
}JSP代码:<s:iterator value="#left_step" id="" status="">
...
...
</s:iterator>
问题是:
1.不知道Java代码是否正确,List对象能够传到JSP中来,是不是需要使用Map来传递,如果需要该怎么实现?
2.JSP中的代码如何实现?<s:iterator value="#left_step" id="" status="">中value值"#left_step"和"${left_step}"有何区别?我取得的List结果集中字段名不确定,取某一行值的方法是什么,比如:left_step.Index[0].toString;之类的。对于高手来说这个问题很简单,还请高手不吝赐教。
<s:iterator value= "list_step" status= "xxx">
<s:if test="#xxx==3">
<s:property value="list_step[#xxx]"/>
</s:if>
</s:iterator>