Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding a custom page in spring roo

Tags:

spring-roo

I have a question about spring roo.

How can you add a custom page to your web application? It seems really basic and easy if I'm using standard Servlet, but I'm totally confused to do this in Spring roo. All I want to have is a link in main page (with the menus etc) that links to my custom page.

I have tried to add a new Servlet to the application, setting its path mapping to /custompage. but when I access http://localhost:8080/myapp/custompage , it shows that the resource is unavailable.

I also can't add a link in the main page, I have tried to edit the menu.jspx directly and it fails.

Can anyone shed me light on this? Any help will be greatly appreciated.

like image 396
Tetrax Avatar asked Apr 16 '11 14:04

Tetrax


3 Answers

First of all edit your {project_root}/src/main/webapp/WEB-INF/spring/webmvc-config.xml and add new mvc:view-controller definition for your new page. Something like:

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

Then open {project_root}/src/main/webapp/WEB-INF/views/views.xml and add the following definition:

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

And add your custompage.jspx to the {project_root}/src/main/webapp/WEB-INF/views/ folder.

And then edit {project_root}/src/main/webapp/WEB-INF/views/menu.jspx and new menu:item with url="/custompage".

I think it should work.

like image 146
Constantiner Avatar answered Sep 24 '22 01:09

Constantiner


The simplest way is to let Roo do it for you. Use controller class --class ~.web.CustomPageController --preferredMapping /custompage and Roo will create everything for you.

Make sure you only have what you need in the resulting controller since it won't work if you have more than one mapping per request (I think the default in 1.1.4 is that there is an ambiguous mapping for a simple 'get')

like image 21
Tal Avatar answered Sep 27 '22 01:09

Tal


I did same. I got the same issue. Then I noticed webmvc-config.xml not having entry of <mvc:view-controller path="/custompage/index"/>. I put the entry and now it is working now. Make sure the presence of the above said code.

like image 22
Ramesh Avatar answered Sep 25 '22 01:09

Ramesh