这就是我在表格中的内容:
<td><g:checkBox name="book_${bookInstance.id}"/> </td>
这就是我尝试获取所选实例的方式:
params.each{
if(it.key.startsWith("book_"))
books << (it.key - "book_") as Integer
}
我得到一个空列表。如何解决这个问题?如果你有更好的解决方案,我愿意接受建议。
答案 0 :(得分:5)
尝试创建具有相同输入名称但值不同的复选框列表。
<g:each in="${books}" var="bookInstance">
<g:checkBox name="books" value="${bookInstance.id}"/>
</g:each>
然后在您的控制器中,您可以通过以下方式获取所选书籍ID的列表:
params.list('books')
答案 1 :(得分:3)
我的回答肯定是迟到的,因为这个问题有一段时间被问到了。无论如何我解决了类似的问题,请试试这个。
<td><g:checkBox name="registerBook" value="${bookInstance.id}" checked="false"/> </td>
获取所选书籍列表的控制器代码:
def checkedBooks = params.list('registerBook')
//get list of books. this will return only the selected books
def selectedBooks = Book.getAll(checkedBooks)
for(result in selectedBooks){
//now manipulate the result as you wish ...
}