jFinal页面取关联数据

李永china 发布于 2016/05/29 22:46
阅读 283
收藏 0

@JFinal  打扰一下,我有个问题咨询一下 谢谢

我有两个实体类,User与Blog--》一对多的关系

User类:

public List<Blog> getBlog(){
return Blog.dao.find("select * from blog where user_id=?",get("id"));
}

Blog类:

public User getUser(){
return User.dao.findById(get("user_id"));
}

BlogController类:

Page<Blog> page=Blog.dao.paginate(num, 10, "select blog.* ","from blog");
List<Blog> blogList=page.getList();
this.setAttr("page", page);


我要在页面上显示所有的Blog,然后根据Blog取出User,在页面输出User的属性

<c:forEach items="${page.list}" var="blog" >
    <tr>
         <td><a href="/jFinal/user/findUserById?id=${blog.id }">${blog.title }</a></td>
         <td>${blog.content }</td>
         <td>${blog.user.name }</td>
    </tr>
 </c:forEach>
结果是:blog.title   blog.content有值  但是blog.user.name不显示


请问用什么办法取出来呢

加载中
0
JFinal
JFinal
   使用 jfinal 2.2 生成 getter setter,这样才会让 blog.user 调用 blog.getUser() 方法,进而 blog.user.name 才会调用 blog.getUser().getName()。 否则 jfinal 会将 blog 当成类似于 map 的东东,仅仅从 blog.attrs 这个 map 中取数据
李永china
李永china
private User user; public User getUser(){ return user; } public void setUser(User user){ this.user=User.dao.findById(get("user_id"));; } 我在blog实体类中 注入这个方法 在页面中blog.user.name也无法获取到值
0
李永china
李永china

引用来自“JFinal”的评论

   使用 jfinal 2.2 生成 getter setter,这样才会让 blog.user 调用 blog.getUser() 方法,进而 blog.user.name 才会调用 blog.getUser().getName()。 否则 jfinal 会将 blog 当成类似于 map 的东东,仅仅从 blog.attrs 这个 map 中取数据

很感谢你百忙之中抽出时间回答:是这样么

User继承BaseUser<User>

public class User extends BaseUser<User> {
public static final User dao = new User();
}

public abstract class BaseUser<User extends BaseUser<User>> extends Model<User> implements IBean{

public void setId(java.lang.Integer id) {
set("id", id);
}


public java.lang.Integer getId() {
return get("id");
}


public void setName(java.lang.String name) {
set("name", name);
}


public java.lang.String getName() {
return get("name");
}


public void setAge(java.lang.Integer age) {
set("age", age);
}


public java.lang.Integer getAge() {
return get("age");
}


public void setAddress(java.lang.String address) {
set("address", address);
}


public java.lang.String getAddress() {
return get("address");
}


public void setEmploy(java.lang.Integer employ) {
set("employ", employ);
}


public java.lang.Integer getEmploy() {
return get("employ");
}


}


JFinal
JFinal
没错,就是这样,利用 jfinal 2.2 的 Model 、BaseModel生成器
0
微信小程序-暗潮
微信小程序-暗潮
波总看来还是蛮有童心的,“东东”。。“打完收工”。。。哈哈。。
返回顶部
顶部