今天我在使用grails中的tag <g:link>遇到了一些问题,与大家分享下。
view gsp代码:
<g:each in="${sortInstanceList}" status="i" var="sortInstance"> <tr class="${(i % 2) == 0 ? 'odd' : 'even'}"> <td width="15" class="leftborder"></td> <td width="400" class="gap"> ${sortInstance?.sortname} </td> <td width="40" class="txtcenter"> ${sortInstance?.blogs.size()} </td> <td width="335" class="rightborder egap"> <g:link action="delete" id="${sortInstance?.id}">删除</g:link> </td> </tr> </g:each>
<g:link>中的action可以是show, edit 唯独不可以是delete(这些都是由grails命令自动生成的action),使用delete action会报错:
"The specified HTTP method is not allowed for the requested resource()." 结果在google一查发现是在对应的controller类
中的一行代码在作祟,如下:
如果是使用<g:link> 并且action是这几个的话是要用GET方法的,所以在上面delete后添加 delete: "GET" 就行了