链接有id(或不是)时如何使grails中的布局工作

时间:2014-04-23 06:06:02

标签: javascript grails gsp param

以下是我在land.gsp页面中的代码。

 <table style="padding: 10 ">
                <thead>
                    <tr style="color: blue">
                        <td>Gname</td>
                        <td>Gowner</td>
                        <td>Device number</td>
                        <td>Edit </td>
                        <td>Delete </td>


                    </tr>
                </thead>
                <tbody>
                <g:each in="${Groups.list()}" status="i" var="groupsInstance">
                <g:set var="myid" value="${groupsInstance.id}"></g:set>
                    <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">

                        <td>${fieldValue(bean: groupsInstance, field: "gname")}</td>
                        <td>${fieldValue(bean: groupsInstance, field: "gowner")}</td>
                        <td>${fieldValue(bean: groupsInstance, field: "devicenum")}</td>
                        <td><g:link action="edit" id="${groupsInstance.id}">Edit</g:link></td>
                        <td><g:link action="deleteme" id="${groupsInstance.id}">Delete</g:link></td>

                    </tr>
                </g:each>
                </tbody>
            </table> 

但是当我点击编辑时页面的布局不起作用(javascript,图像,样式)。但是id正确地传递给edit.gsp页面。当我改变

<td><g:link action="edit" id="${groupsInstance.id}">Edit</g:link></td>

<td><g:link action="edit" >Edit</g:link></td>

没有传递id并单击编辑将为页面提供正确的布局。以下是我的编辑操作

def edit(Long id) {
        def groupsInstance = Groups.get(id)
        if (!groupsInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'groups.label', default: 'Groups'), id])
            redirect(action: "list")
            return
        }

        [groupsInstance: groupsInstance]
    }

我哪里出错了?我想通过所有正确的布局将id传递给编辑页面。

3 个答案:

答案 0 :(得分:2)

尝试在浏览器中查看源html,这可能会为您提供错误的线索。

答案 1 :(得分:1)

根据您的偏好尝试采用以下选项:

<g:link action="/conference/participated" id="${it.conference.id}" 
               params="[foo: 'bar', bar: 'foo']">My Link!</g:link>

我在你的代码中看到

def groupsInstance = Groups.get(id)
        if (!groupsInstance) {
            flash.message = message(code: 'default.not.found.message', args: [message(code: 'groups.label', default: 'Groups'), id])
            redirect(action: "list")
            return

您已将其重定向到列表页面,确定列表页面具有不同的布局设置,这是更改,请检查并告知我们!

答案 2 :(得分:0)

从查看您的编辑操作看起来如果没有提供ID,那么您重定向到列表操作,并且您说布局很好。如果指定了id(并且它是有效的),则表示您正在呈现编辑视图。我希望您的edit.gsp中存在问题,目前您的说明中未显示该问题。