开发者社区> 问答> 正文

JFinal 提交问题第一次正常提交.再到这个页面.填写信息.再提交就会报错?报错

部分代码 config部分


public void configRoute(Routes me) {
		me.add("/", DefaultController.class);	
	}

DefaultController 部分



public class DefaultController extends Controller {
	public void index() {		
		render("tools.jsp");
	}
       public void add() {		
		Map<String, Object> map=new HashMap<String, Object>();	
		map.put("username", getPara("username"));		
		Test.dao.setAttrs(map).save();
		redirect("/");
}

前台代码部分

tools.jsp


<a> 



add.jsp部分



<form action="add" method="post">
     <input name="username"/>
     <input type="submit">
</from>



当部署完成后.从tools.jsp点击链接到add.jsp添加完成后.(无报错) 查询数据库也正常添加好了,然后页面跳转到tools.jsp.


然后再点击添加到add.jsp填写信息.提交就会报错.

报错信息为     提示当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Test' 中的标识列插入显式值。

数据库表结构部分    sqlserver2008


CREATE TABLE Test(
	id INT IDENTITY(1,1) PRIMARY KEY,
	username VARCHAR(50) NOT NULL
)



明明没有给id赋值.新手初学.求指导.




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

    引用来自“陈国治”的评论

     Test.dao.setAttrs(map).save();

    改为

    newTest().set("username",getPara("username")).save();

    其实认真的看了手册就不会出现这样的问题 Model.dao只适用于查询修改和增加必须new感谢指导赞

     Test.dao.setAttrs(map).save();

    改为

    newTest().set("username",getPara("username")).save();

    注意看下jfinal1.8第24页,最下方的红色文字。dao对象是全局共享的只能用来查询,不能用来承载数据
    2020-06-14 19:57:02
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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