getmodel无法save表单值到数据库

代码如下

表单部分数据:

<tr>

<th align="right">项目编号:</th>

<td>

<input type="text" name="project.projectSeq" id="projectSeq" class="text">

</td>

</tr>

<tr>

<th align="right">项目简写:</th>

<td>

<input type="text" name="project.projectShortName" id="projectShortName" class="text">

</td>

</tr>


Project的model类定义如下:

image.png

contoller的project类定义如下:

image.png



通过后台调试,发现projectSeq属性已经传人进来,但在save的时候就是不能save进数据库


数据库的表定义如下:

image.png


请大神帮忙看下,我定位了很久,就是找不到原因,请指教。    

评论区

JFinal

2017-06-22 16:07

在 proejct.save() 这行代码处设置一个断点,进入到 save() 方法内部,看一下内部的 Map attrs 属性中有没有值,一步步定位问题

目前从表面上看是没有问题的,可能是某个地方出现意想不到的问题,例如你是否改变过 jfinal 底层的实现

txw_506

2017-06-22 16:15

@JFinal hi James,是不是我用的版本比较旧导致的,或者说旧版本不支持这种操作吗? 从昨晚调到现在,试了很多种情况,都不行,public void saveProject(){

Project p = this.getModel(Project.class);
p.set("project_seq", getPara("project.projectSeq"))
.set("project_short_name", getPara("project.projectShortName"))
.set("project_full_name", getPara("project.projectFullName"))
.set("project_id", getPara("project.projectId"))
.set("leader", getPara("project.leader"))
.set("start_date", getPara("project.startDate"))
.set("end_date", getPara("project.endDate"))
.set("overall_budget", getPara("project.overallBudget"))
.set("recived_amount", getPara("project.recivedAmount"))
.set("exe_rate", getPara("project.exeRate"))
.set("status", getPara("project.status"))
.set("default", getPara("project.default")).save();

this.render("/admin/purchase/new_project.html");
}

只能这样写才能被保存到数据库,但这样的话表单未被封装到一个对象里面,操作起来不是很方便,真的是无解啊

txw_506

2017-06-22 16:16

我用到了jfnial-comm.jar,jfinal-1.9-bin.jar,jfinal-ext-3.0.1.jar

JFinal

2017-06-22 16:28

@txw_506 你的数据表字段名为 projectSeq,而你的 setter 方法是:
set("proect_seq", ..) 这显然不行

而且 jfinal 也不是这么来用的, getModel 搞定所有参数,不需要再一个一个的 set(...) 进去

建议下载首页的 jfinal deom , 用上里面的 Generator,自动化生成 Model 搞定一切

JFinal

2017-06-22 16:28

jfinal 升级到 3.1 版本,你的版本是两年前的了

热门反馈

扫码入社