我有一个hibernate映射的树状结构的实体,代码如下
- Java code
@Entity@Table(name = "t_organization")public class Organization { private int id; private String name; private String sn;// private String description; private Organization parent; private Set<Organization> children = new HashSet<Organization>(); @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @ManyToOne() @JoinColumn(name = "pid") public Organization getParent() { return parent; } public void setParent(Organization parent) { this.parent = parent; } @OneToMany(cascade=CascadeType.ALL,mappedBy = "parent") public Set<Organization> getChildren() { return children; } public void setChildren(Set<Organization> children) { this.children = children; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; }}
,在查询的时候value stack中已经有值了,但用如下代码显示时报java.lang.NumberFormatException: For input string: "id"错
- Java code
<s:iterator value="orgs"> <tr bgcolor="#EFF3F7" class="TableBody1" onmouseover="this.bgColor = '#DEE7FF';" onmouseout="this.bgColor='#EFF3F7';"> <td align="center" vAlign="middle"><s:property value="id"/></td> <td align="center" vAlign="middle"><s:property value="name"/></td> <td align="center" vAlign="middle"><s:property value="sn"/></td> <td align="center" vAlign="middle"><s:property value="parent.name"/></td> <td align="center" vAlign="middle"><a href="#" onclick="">删除</a></td> </tr> </s:iterator>
------解决方案--------------------
检查下value stack中id是否有String的。
------解决方案--------------------
java.lang.NumberFormatException
------解决方案--------------------
前台传过来的id是“String”型的!
------解决方案--------------------
java.lang.NumberFormatException: For input string: "id"
这是格式化异常,无法格式化string类型的id
------解决方案--------------------
类型转换问题 库里定义的int 页面上是String
你可以在<s:property value="id"/>
上边先把id 取出来 转化一下 String ids = String.valueof(id);
然后直接放在td里边
这个地方别用S标签了
------解决方案--------------------
汗 看错了 你这是不是查询列表啊
------解决方案--------------------
在查询的时候value stack中已经有值了,说明你查出来的数据类型是String,但是你程序中用的是int,你把类型转化下
------解决方案--------------------