2011-04-16 26 views
5

Tengo una pregunta acerca de spring roo.Agregar una página personalizada en spring roo

¿Cómo se puede agregar una página personalizada a su aplicación web? Parece realmente básico y fácil si estoy usando Servlet estándar, pero estoy totalmente confundido para hacer esto en Spring roo. Todo lo que quiero es un enlace en la página principal (con los menús, etc.) que enlace a mi página personalizada.

He intentado agregar un nuevo servlet a la aplicación, estableciendo su asignación de ruta en/custompage. pero cuando tengo acceso al http://localhost:8080/myapp/custompage, muestra que el recurso no está disponible.

También no puedo agregar un enlace en la página principal, he intentado editar el menú.jspx directamente y falla.

¿Alguien puede arrojarme luz sobre esto? Cualquier ayuda será apreciada.

+0

¿Qué tipo de error experimentó con la edición de 'menu.jspx'? – Constantiner

+0

Bueno, nada cambia en la lista del menú. Intenté copiar y pegar una lista en menu.jspx (así, hacer que la lista se duplicara) y agregar mis propios elementos como un simple 'HOLA'. Pero no cambia nada. Ni siquiera muestra un 'HOLA' – Tetrax

+0

¿Ha recompilado su código y lo ha vuelto a implementar? –

Respuesta

6

Primero edite su {project_root}/src/main/webapp/WEB-INF/spring/webmvc-config.xml y agregue la nueva definición mvc:view-controller para su nueva página. Algo así como:

<mvc:view-controller path="/custompage" /> 

Entonces abrir {project_root}/src/main/webapp/WEB-INF/views/views.xml y añadir la siguiente definición:

<definition extends="public" name="custompage"> 
    <put-attribute name="body" value="/WEB-INF/views/custompage.jspx"/> 
    </definition> 

Y añadir su custompage.jspx a la carpeta {project_root}/src/main/webapp/WEB-INF/views/.

Y luego edite {project_root}/src/main/webapp/WEB-INF/views/menu.jspx y nuevo menu:item con url="/custompage".

Creo que debería funcionar.

+0

Muchas gracias. Funciona muy bien. – Tetrax

+1

Puede generar un controlador si desea calcular algunas cosas y luego pasarlo a la página. También te puede gustar tener tu propia definición de fichas que no dependa del tema roo. – geoaxis

6

La manera más simple es dejar que Roo lo haga por usted. Use controller class --class ~.web.CustomPageController --preferredMapping /custompage y Roo creará todo para usted.

Asegúrese de que solo tiene lo que necesita en el controlador resultante, ya que no funcionará si tiene más de una asignación por solicitud (creo que el valor predeterminado en 1.1.4 es que hay una asignación ambigua para un simple 'obtener')

+1

Lo hice y reduje el controlador a solo un método de "índice" que devuelve "página personalizada/índice", y verifiqué que esos fragmentos de vista se crearon. Aun así, cuando navego a/myapp/custompage, obtengo la página de "recurso no encontrado" de Roo. –

2

Hice lo mismo. Tengo el mismo problema. Entonces noté que webmvc-config.xml no tenía entrada de <mvc:view-controller path="/custompage/index"/>. Puse la entrada y ahora está funcionando ahora. Asegúrese de la presencia del código mencionado anteriormente.

Cuestiones relacionadas