iberck
10/11/2016 - 4:57 PM

/$Id/ argument

/$Id/ argument

Id argument

Gracias al url mapping por default: "/$controller/$action?/$id?" todo valor seguido de la acción y una diagonal será el valor de la variable "id".

Por defecto muchos tags en grails tienen el argumento id y sirve precisamente para asignar el valor de la variable id en el formato controlador/accion/id.

Aunque se utilice el parámetro id, es posible mezclarlo con otros parámetros como se ve en el ejemplo 4.

En el siguiente ejemplo se muestra cómo mandar la variable id, las 4 formas hacen exactamente lo mismo.

Controller:
class TestController {
    def list(int id) {
        render "hello $id"
    }
    def show(int id, String nombre, String apellido) {
        render "id=$id,nombre=$nombre,apellido=$apellido"
    }
}

index.gsp
<!--"/test/list/1": hello 1-->
<g:link action="list" id="1">link con id</g:link>

<!--"/test/list/2": hello 2-->
<g:link action="list" params="${[id:"2"]}">link con params</g:link>

<!--"/test/list?id=3": hello 3-->
<g:link uri="/test/list?id=3">link con id en url</g:link>

<!--"test/show/4?nombre=carlos&apellido=montiel": 
id=4,nombre=carlos,apellido=montiel -->
<g:link action="show" id="4" params="${[nombre:"carlos", apellido:"montiel"]}">id y params</g:link>