jfinal2.1+jsp,前台取值报错

发布于 2021-11-29 02:25:56 字数 2521 浏览 866 评论 5

@JFinal 你好,想跟你请教个问题:我用jfinal2.1+jsp写程序,后台语句是:

public void useradmin() {  
  List<Users> list = Users.dao.find("select a.*,b.role_name,c.org_name from users a left join role b on a.role = b.role_id left join orgs c on a.org_id = c.org_id ");
  setAttr("userList", list);  
render("/system/useradmin.jsp");

}

前台语句是:

<c:forEach items="${userList}" var="user">
<tr >

<td style="text-align: center;">${user.user_id}
 </td>
<td style="text-align: center;">
 </td>
<td style="text-align: center;"> </td>
<td style="text-align: center;"></td>
<td style="text-align: center;"> 
   
</td>

</tr> 
</c:forEach>


users的Model

@SuppressWarnings("serial")
public class Users extends BaseUsers<Users> {
public static final Users dao = new Users();
}

报错:

Caused by: javax.el.PropertyNotFoundException: Property 'user_id' not found on type com.post.common.model.Users
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:238)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
at javax.el.BeanELResolver.property(BeanELResolver.java:324)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:182)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:897)
at org.apache.jsp.system.useradmin_jsp._jspx_meth_c_005fforEach_005f0(useradmin_jsp.java:235)
at org.apache.jsp.system.useradmin_jsp._jspService(useradmin_jsp.java:182)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
... 27 more

我很奇怪,com.post.common.model.Users对应的表users有user_id这个字段的,为什么提示

Caused by: javax.el.PropertyNotFoundException: Property 'user_id' not found on type com.post.common.model.Users



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

梦里兽 2021-12-02 08:16:59

这2。1还没有用上,都2.2了?

想挽留 2021-12-02 07:15:10

Users中没有这个get方法,用record取吧

不乱于心 2021-12-02 05:46:48

这是问题我自己找到原因了,解决方案如下:

1.版本更新为jfinal2.2

2.设置ModelRecordElResolver.setResolveBeanAsModel(true);

3.${user.user_id}正常显示

冷清清 2021-12-01 23:36:44

非常感谢!

心欲静而疯不止 2021-11-29 02:37:33

   这是因为model生成了 getter方法,而 jsp 则使用了 getter 方法去取数据了,而 getter 方法对应的属性名是驼峰的,所以需要 ${user.userId} 而不是 ${user.user_id} 去取数据。

   jfinal 2.2 提供了一个参数,可以让 jsp 仍然使用以前的方式读取数,从而无视 getter 方法的存在,使用一下如下代码即可设置:

ModelRecordElResolver.setResolveBeanAsModel(true);

   这种方式的一个好处是,可以读取关联查询中本 model 不存在的属性,也可以读取使用 put 方法任意放进去的属性,如 user.put("key", 123)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文