在用
<logic:iterate id="ls" name="list">
<tr>
<td align="center"><bean:write name="ls" property="duty_name" /></td>
<td align="center"><bean:write name="ls" property="id" /></td>
<td align="center"><input type="checkbox" name="checkbox" value="checkbox"></td>
</tr>
</logic:iterate>
进行循环时,如果这里<bean:write name="ls" property="id" />的id是字符串属性就没问题,如果是整型就报错了。代码如下:
//ListBean.java
public void listDevice(HttpServletRequest req)
throws Exception
{
int num;
String s="SELECT count(*)FROM v6_duty";
String s1="SELECT * FROM v6_duty";
try
{
ResultSet rs=dbconn.executeQuery(s);
ResultSet rs1=dbconn.executeQuery(s1);
rs.next();
num=rs.getInt("count(*)");
dutybean=new DutyBean[num];
rs1.next();
for(int i=0;i<num;i++)
{
dutybean[i]=new DutyBean();
dutybean[i].setDuty_id(rs1.getInt("ID"));
dutybean[i].setDuty_name(rs1.getString("DUTY"));
rs1.next();
}
dbconn.closeconn();
}
catch(SQLException sqlexception)
{
System.err.println("aq.executeQuery:" + sqlexception.getMessage());
}
req.setAttribute("list",dutybean);
}
//DutyBean.java
String duty_name;
public String getDuty_name()
{
return duty_name;
}
public void setDuty_name(String s)
{
duty_name=s;
}
int id;
public int getId()
{
return id;
}
public void setId(int i)
{
id=i;
}
------解决方法--------------------------------------------------------
他只对对象起作用,对基础数据类型不起作用,你把int改成Integer就好了
------解决方法--------------------------------------------------------
<logic:iterate id="ls" name="list" type="你的bean全名">
------解决方法--------------------------------------------------------
你在jsp中使用list之前应该先使用notempty标签判断一下!
------解决方法--------------------------------------------------------
我从来没遇到过你的这种问题,你检查一下是不是因为你数据库中的字段所导致的。譬如说:你的这个字段是int型的,但是对于某些数据库来说,这个字段可以为0,也可以为空的。如果你取出的为空,而bean:write会进行“数字-字符”的转换,对于空,没办法转换,就会报错。
你看看是否有这样的数据?
btw:<bean:write>是可以正确显示int型数据的。
如果还有问题,我就得看看你的错误日志了,否则我也不好猜。