with serverurl homepage grails view convention-over-configur

serverurl - Grails: ¿Cómo puedo cambiar la ubicación de vista predeterminada?



install grails with sdkman (2)

Tengo el controlador AdminTagController . Por defecto, la vista se ubicará en la carpeta /adminTag . ¿Es posible cambiar la carpeta predeterminada de este controlador a /admin/view ? Puedo especificar la vista para cada método, pero no es genial

Gracias


En tu caso, yo haría el trabajo pesado en el controlador, ya que solo una clase se ve afectada.

Sin embargo, esta es otra forma, usando un GroovyPageResourceLoader personalizado.

Ese enfoque generalmente se usa cuando sus vistas están en una estructura de carpetas que no sigue las convenciones de Grails. En tu caso, eso sería excesivo en mi opinión.

Sin embargo, aquí está la idea general:

1. Cree una clase que amplíe el groovyPageResourceLoader predeterminado.

A continuación se muestra un ejemplo muy crudo .

class AdminGroovyPageResourceLoader extends GroovyPageResourceLoader { @Override Resource getResource(java.lang.String location) { if (location.contains ("/admin")) { return new FileSystemResource("PATH_TO_GSP_LOCATION_WITHOUT_FILE_EXTENSION") } return super.getResource(location) } }

2. Reemplace el bean predeterminado groovyPageResourceLoader

En resources.groovy o su descriptor de plugin, anule el bean groovyPageResourceLoader con su clase personalizada.

Una ruta más corta, podría ser un kung fu de metaclase , si no desea anular el Spring Bean predeterminado.


Es posible cambiarlo con el AfterInterceptor de su controlador. Verifica el ejemplo:

def afterInterceptor = { model, modelAndView -> println "Current view is ${modelAndView.viewName}" if (model.someVar) { modelAndView.viewName = "/mycontroller/someotherview" } println "View is now ${modelAndView.viewName}" }

Esto se aplica a todas las acciones de su controlador.