开发者社区> 问答> 正文

jfinal简单问题?报错

报错:The class 'java.util.HashMap$Entry' does not have the property 'content'.

为什么上面的setAttr("topics",com.model.Topic.dao.paginate(1, 10, "select * ", "from topic "));就报错?

另外在Topic.java

public class Topic extends Model<Topic>{
public static final Topic dao = new Topic();
public User getUser(){
int userID=this.getInt("userID");
       return User.dao.findById(userID);
   }
}

当我用setAttr("topics",Topic.dao.find("select * from topic "));

username不显示任何东西(select user的sql 没有执行,但是我有arp.addMapping("topic", Topic.class).addMapping("user", User.class);)

<c:forEach items="${topics}" var="topic">

${topic.user.username}:${topic.content}<br/> </c:forEach>


报错是因为没有getList();

setAttr("topics",com.model.Topic.dao.paginate(1, 10, "select * ", "from topic ").getList());

${topic.user.username} 获取不到值,topic里面的getUser方法没有执行

展开
收起
爱吃鱼的程序员 2020-06-22 18:50:27 443 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Theclass'java.util.HashMap$Entry'doesnothavetheproperty'content'. 

    Topic这个对象有没有 content属性呀?

    你把sql语句在数据库查询器里试试,看看能不能查到信息

    setAttr("topics",Topic.dao.find("select*fromtopic"));这句都可以执行并且页面可以显示contentsql没问题 @JFinal帮我看下这个很简单的问题
    4int userID=this.getInt("userID");
    回复 @缪斯的情人:方法没执行取不到值的呀回复 @Singer:那就是jsp页面解析有问题啦。在后台代码遍历获取下,看能取到关联的值吗,如果能娶到,就是你页面的问题了for(Useru:users.getList()){Rolerole=u.getRole();}没进入到getUser()这个方法方法里面的代码都没执行好奇怪数据库的字段是“userID”  paginate返回的是Page对象,而find返回的是List<YourModel>对象,所以取值方式不一样。Freemarker的model.attr取值方式,只能固定地对应一种,要么就是一直调用的model.get(String),要不就一直调用的mode.getAttr()。而楼主前面的代码用的是user.get(),后面的用的user.getUserName调用的是自然取不到了${topic.user.username}获取不到值,topic里面的getUser方法没有执行可能是什么原因导致?
    2020-06-23 11:53:08
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载