开发者社区> 问答> 正文

大家帮我分析下,为什么getModel()后总是null,是我哪根筋没反应过来么?报错

1.数据库中的表名是attrgroup 其中的列是id     int(11),name     varchar(20)     utf8_general_ci     默认:无

2.Model是


public class AttrGroup extends Model<AttrGroup>{
	public static final AttrGroup dao=new AttrGroup();
}
3.jfinal config里是



arp.addMapping("attrgroup", AttrGroup.class);
4.controller里是



AttrGroup attrGroup=getModel(AttrGroup.class);


5.html页面写的是


<input type="text" name="attrgroup.name" />



执行后console端输出Parameter   : attrgroup.name=qqq

但是报错说Field 'name' doesn't have a default value

猜测可能是getModel出错,于是使用


System.out.println(attrGroup.getStr("name"));
结果输出的确实是null


我详细查了下,从html到jfinal config class到model这个attrGroup我应该没写错啊。实在搞不清楚什么原因了。



P.S.后来我把controller里的

AttrGroup attrGroup=getModel(AttrGroup.class);
换成了

AttrGroup attrGroup=getModel(AttrGroup.class,"attrgroup");



能正常执行成功。但是我还是奇怪,为什么上边的那个不对呢?

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

    因为你命名的“attrgroup”不是以驼峰命名法,JFinal无法自动将它匹配到AttrGroup上。

    有两个方法:

    1.将attrgroup改为驼峰命名attrGroup。

    2.getModel中指定自属性名,getMode(AttrGroup.class,"attrgroup"),将非驼峰命名attrGroup。

    哦好像还真是这里忽略了这件事了。谢谢
    2020-06-20 17:24:03
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载