2008-08-26 11 views

Respuesta

10

Editar UrlMappings.groovy

Añadir, por ejemplo, añadir esta regla, para manejar la raíz con un HomeController.

"/" (controlador: 'casa')

+1

trabajaron para mí, bajo griales 1.3.7, con una acción: la clave. – jerseyboy

53

Añadir esto en UrlMappings.groovy

 
"/" { 
    controller = "yourController" 
    action = "yourAction" 
} 

Mediante la configuración de los urlMappings esta manera, la casa-página de la aplicación será yourWebApp/yourController /tu acción.

(cortar/pegar de IntelliGrape Blog)

+0

Quizás el método haya cambiado en versiones posteriores de Grails, porque no funciona en 1.3.7. Usar la sintaxis publicada por daherman funcionó para mí. – jerseyboy

+2

Debería funcionar, de acuerdo con [documentos oficiales] (https://grails.github.io/grails-doc/1.3.7/guide/single.html#6.4.1%20Mapping%20to%20Controllers%20and%20Actions) pero recuerde usar el nombre corto para su controlador, es decir, si su clase de controlador es BooksController, entonces se refiere a ella como "libros" solamente. – Wonko

2

simple y ordenada

  1. Vaya a Archivo: griales-app/conf/UrlMappings.groovy.

  2. Reemplazar la línea: "/" (ver: "/ índice") con "/" (controlador: 'home', acción: "/ index").

casa es su controlador para ejecutar (Al igual que en la primavera de seguridad se puede utilizar 'login') y la acción son los griales página asociada con el controlador de vista (En la primavera de Seguridad '/ auth').

Agregue la redirección de páginas según las necesidades de su aplicación.

11

Usted puede tratar de la siguiente manera
en la clase UrlMappings.groovy que está dentro de la carpeta de configuración:

class UrlMappings { 

    static mappings = { 

     "/$controller/$action?/$id?"{ 
      constraints { 
       // apply constraints here 
      } 
     } 

     //"/"(view:"/index") 
     "/" (controller:'Item', action:'index') // Here i have changed the desired action to show the desired page while running the application 
     "500"(view:'/error') 
    } 
} 

esperanza que esta ayuda,
Rubel

0

Todas las respuestas son correctas! Pero imaginemos un escenario:

I ruta mapeada "/" con el controlador: "Inicio" y acción: "índice", así que cuando accedo a "/ nombre de la aplicación /" se ejecuta el controlador Inicio, pero si escribo la ruta "/ nombre de la aplicación/home/index", ¡aún se ejecutará! entonces hay 2 caminos para uno recursos. funcionaría hasta que alguien descubra el camino "hogar/índice".

otra cosa es si tengo un formulario sin ningún atributo de acción especificado, por lo que de forma predeterminada será POST para el mismo controlador y acción! entonces si el formulario está mapeado a la ruta "/" y no se especifica ningún atributo de acción, se enviará al mismo controlador, pero esta vez la ruta será "inicio/índice" en su barra de direcciones, no "/", porque se envía al controlador/acción no al URI.

Para resolver este problema, lo que debe hacer es eliminar o comentar estas líneas.

//  "/$controller/$action?/$id?(.$format)?"{ 
//   constraints { 
//    // apply constraints here 
//   } 
//  } 

Así que ahora cuando acceda a "/", funcionará. pero "hogar/índice" no lo hará.Pero hay un único defecto: ahora tiene que asignar manualmente todas las rutas a los controladores escribiendo explícitamente en el archivo URLMapping. ¡Supongo que esto ayudaría!

2

Uso del controlador, la vista y el parámetro de acción de la siguiente sintaxis:

class UrlMappings { 
    static mappings = { 
     "/" (controller:'dashboard', view: 'index', action: 'index') 
     "500"(view:'/error') 
    } 
} 
Cuestiones relacionadas