开发者社区> 问答> 正文

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

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");

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

展开
收起
kun坤 2020-05-29 11:02:50 464 0
1 条回答
写回答
取消 提交回答
  • 因为你命名的“attrgroup”不是以驼峰命名法,JFinal无法自动将它匹配到AttrGroup上。
    有两个方法:
    1.将attrgroup改为驼峰命名attrGroup。
    2.getModel中指定自属性名,getMode(AttrGroup.class, "attrgroup"),将非驼峰命名attrGroup。 ######哦 好像还真是这里 忽略了这件事了。谢谢

    2020-05-29 11:37:16
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

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