我是Hibernate世界的新手,我遇到了一个我无法解决的问题。请你好。
我有什么:
我想要的是什么:
我的分类:
public class Category implements java.io.Serializable {
private Integer id;
private String name;
private String description;
public Category() {
}
public Category(String name, String description) {
this.name = name;
this.description = description;
}
public Category(String name, String description) {
this.name = name;
this.description = description;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
}
我的getCategories方法:
public static List getAllCategories(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
List results = session.createCriteria(Category.class, "category")
.list();
tx.commit();
return results;
}
我的控制器:
List categories = CategoriesManagement.getAllCategories();
map.addAttribute("categories", categories);
我的观点(jsp):
<c:forEach var="cat" items="${categories} ">
${cat.name}
</c:forEach>
我一无所获。
当我显示 $ {cat.class} 时,它会说:
java.lang.String
java.lang.String
java.lang.String
当我显示 $ {cat} 时,它会说:
com.company.Category@7136faa
com.company.Category@25636faa
com.company.Category@83baeaa
更新:
当我在类别中重新定义toString()方法时:
public toString(){
return "foo";
}
我明白了:
[foo
foo
foo]
提前致谢。
答案 0 :(得分:0)
使用此:<c:out value="${cat.name}" />
答案 1 :(得分:0)
我知道这很奇怪,经过9个小时(我发誓)我发现了这个空间
<c:forEach var="cat" items="${categories} ">
是错误,
我应该这样做:
<c:forEach var="cat" items="${categories}">