1.参考Grails实现复杂的数据录入,实现了为图书添加相关图书的功能,但是在随后的测试中
发现了一些问题,现将这些问题列举出来,
(1)当进入新建页面的时候,什么数据也不填,点击保存按钮,如果你在domain类中添加了约
束条件,如果按照正常的情况是应该在页面上显示报错信息。但是此时页面没有报错,但是数
据也没录入,该怎样解决这个问题了。
例如当保存不成功时我们返回到添加页面,如果你的代码类似这样的话
render(view:"create")或者redirect(action:"create")这时就会出现上面的问题。
解决办法,我们在controller中判断保存是否成功的逻辑中假如如下代码:
将代码修改成为
render(view: "newedit", model: [bookInstance: book])
注意红字部分,保存代码,运行程序,重复上边的步骤。这时会在页面上显示报错信息。
(2)如果我们进入编辑页面的话,此时你会发现页面没数据。这问题可以这样解决,原代码如
下:
def edit={
book=Book.get(params.id)
}
我们将其修改如下:
def edit = {
def bookInstance
if(params.id){//如果有参数,则表明是要进入编辑页面
bookInstance = Book.get(params.id)
}else{//没有参数,则表示新建
bookInstance = new Book()
bookInstance.properties = params
}
return [bookInstance: bookInstance]//得返回这个,否则在编辑页面没值
}
注意红字部分。
ok,保存代码,运行程序,再次进入编辑页面就会出现数据了。
(3)如果我们浏览某本书的详细页面,相关图书那里会有一些问题,出现的数据会有中括号包起
来,如下图所示:
解决方法如下:我们可以写一个循环把它的值取出然后显示出来,正好grails给我们提供了
<g:each>标签,示例如下:
<g:each in="${bookInstance?.relativeBooks}" var="relativeBooks">
<li>${relativeBooks.cName}</li>
</g:each>
ok,保存代码,运行程序,效果如下,当然你可以给给它的显示样式做下改变,这就涉及到
CSS了,这里就不做讨论了。
ps:这是最近遇见的一个问题,在测试页面时发现,当我编辑一个图书时,我将该图书的相关
图书删除一些后,然后点击保存,然后再查看该图书的详细信息时发现,该图书的相关图书没
有改变,还是原来的那些,如果我在编辑时,删除一些相关图书,然后再添加一些的话,再查
看详细图书时,发现相关图书会出现混乱,一本书可能出现两次,通过在控制台打印信息发
现,该图书的相关图书,Book.relativeBooks,例如你新建的一本书的相关图书有3本,那么
这个Book.relativeBooks的长度为3,这个长度只能增加,不会再减少。仔细检查代码,最终
找到了解决方法。
def edit = {
def bookInstance
if(params.id){//如果有参数,则表明是要进入编辑页面
bookInstance = Book.get(params.id)
}else{//没有参数,则表示新建
bookInstance = new Book()
book.relativeBooks = null//将其相关图书清空
bookInstance.properties = params
}
return [bookInstance: bookInstance]//得返回这个,否则在编辑页面没值
}
在原action中加入红色字体的代码,现将相关图书清空,然后再利用properties属性,为
book赋值。
ok再次测试程序,这次程序没有问题了。
相关推荐
C语言实现图书管理系统,功能包含:添加图书、展示图书、寻找图书、借阅图书、归还图书、查找借阅记录、更改读者信息、查找读者信息、修改图书信息.zip
第一个较大的Android项目,基于Android平台的图书管理系统 涉及到的功能有学生注册、工作人员注册、图书馆介绍、图书馆新闻、学生、工作人员登录、 书籍搜索、学生借还书、工作人员添加书籍、新书榜单、借书排行榜、...
这个简单的Java图书管理系统实现了图书的添加和查询功能,通过面向对象编程的方式,让我们能够更好地管理和操作图书信息。当然,这只是一个基础版本,你可以根据自己的需求进一步扩展和优化,例如加入图书删除、修改...
3. 修改记录 函数CRecordSet::Edit可以用来修改记录,例如: m_pSet->Edit(); // 修改当前记录 m_pSet->m_name="刘向东"; // 修改当前记录字段值 ...... m_pSet->Update(); // 将修改结果存入数据库 ...
该资源能为广大爱好java语言开发图书管理系统提供最新的友情帮助。
此图书管理系统是源码用java编写的系统,主要实现对图书的增加,修改,查询,删除,列表.其中查询可以根据需要像id号和模糊查询
读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看、查询借阅书籍借阅榜等功能。 管理员:对图书、图书分类、读者信息的增删改查,查看全部读者当前借阅信息以及借阅历史等信息。
全代码的图书管理系统 实现添加 删除 借阅的功能 用于课程设计
分为图书,用户和操作(增删改查)三大块,适合新手练习和理解。图书部分用链表存储;图书操作部分用接口实现,包含添加,借出,删除,展示,退出,查找,返回等功能。
一个实用简明的用JSP实现购书网源代码,可实现购书,管理员管理及网上支付等功能,源代码即可用
可实现对图书的查询显示,模糊查询,添加,删除,批量删除,全选和取消全选等功能。 11. 普通用户可实现借书和还书功能,借书功能通过对book表的查询,将未借出的图书按照id顺序排列显示,点击表格后方的“借阅”...
本系统主要包括管理员功能和读者功能,其中管理员可以实现对图书信息、图书类别、读者信息、读者类别的添加、修改和删除,还有借阅和归还图书及查询图书和读者借阅信息等功能;读者可以查询图书信息和读者借阅信息,...
如编程,对于这个问题只能通过多练习一些简单的编程,同时积极地利用图书馆 和网络资源,多查阅一些相关资料,多和老师、同学交流讨论。 本文对系统的开发工具Delphi7.0及数据库开发语言MS SQL Server2000、SQL 语言...
4.3.1 图书类别信息添加功能实现 31 4.3.2 图书类别信息维护功能实现 33 4.3.3 图书信息添加功能实现 34 4.4读者信息管理模块的实现 38 4.4.1 读者类别信息添加功能实现 38 4.4.2 读者信息添加功能实现 40 4.4.3 ...
图书馆管理系统由读者管理、图书管理、借阅、归还、续借、系统查询、排行榜、系统设置等管理模块组成,其规划功能模块如下: ... 系统设置主要实现图书馆信息、管理员添加、参数设置、书架设置、修改口令等功能。
主要介绍了vue实现添加与删除图书功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
在visualstudio中,用C#实现图书管理系统的界面,功能是实现了操作员的添加,删除,修改功能,登陆系统的用户名和密码均为1
可部分简单功能,如添加,删除,修改浏览,只添加了部分代码,其余的读者可自加,方法基本相同。
用Java语言实现简单的图书管理系统,图形界面(GUI)等显示功能,添加、修改、删除、查询功能。