我有一个域类,Report,带有引用的子类,提示符。
您可以在编辑报告页面中重新排序表格中提示的顺序。然后,当用户运行报告时,在该页面上的提示按所述顺序排列。
Report edit.gsp页面上的表使用一些jQuery来允许拖放行,并且它更新了显示顺序号,但是只在UI端,没有任何东西回到数据库。
我希望能够将这个新订单传递回我的更新命令,但无法弄清楚如何在我的生命中获取表行数据。
搜索几乎所有结果时,如何将数据从控制器传输到视图,反之亦然。
以下是表格代码片段
<table id="prompts">
<thead>
<tr>
<th>${message(code: 'prompt.name.label', default: 'Name')}</th>
<th>${message(code: 'prompt.description.label', default: 'Description')}</th>
<th>${message(code: 'prompt.required.label', default: 'Required')}</th>
<th>${message(code: 'prompt.displaySeqno.label', default: 'Display Order')}</th>
</tr>
</thead>
<tbody>
<g:each in="${reportInstance.prompts.sort{it.displaySeqno}}" status="i" var="prompt">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}" onclick='window.location = "${createLink(controller: "prompt", action: "edit", id: prompt.id)}"'>
<td>${fieldValue(bean: prompt, field: "name")}</td>
<td>${fieldValue(bean: prompt, field: "description")}</td>
<td>${prompt.required}</td>
<td class="displaySeqno">${prompt.displaySeqno}</td>
</tr>
</g:each>
</tbody>
</table>
然后在控制器中,我尝试了
params.list('displaySeqno')
但它只会返回一个空数组。
如何从控制器类中获取displaySeqno的值?
感谢。
答案 0 :(得分:2)
这是其中一个时间(发生了很多),其中对HTTP / Java EE如何工作的基本理解将使您能够非常轻松地解决您的问题。表单或没有表单,您必须将值传递到服务器的请求,以便它最终在服务器上。这是怎么回事?
<td class="displaySeqno">${prompt.displaySeqno}</td>
永远要去服务器,表格还是没有形式?答案是,事实并非如此。假设有一个典型的表单帖子,您需要将值存储在隐藏字段中
<input type="hidden" name="displaySeqno" value="${prompt.displaySeqno}" />
然后它会进入服务器。如果您正在使用某种类型的Ajax进行处理,则需要通过API将其作为参数传递。假设jQuery,例如:
伪代码:
var params = $('#youFormId').serialize();
$.post('some/url/to/post/to', params, function(data) {
});
底线是,如果你想将某些东西传递给服务器,你必须提供相应的方法。