2011-04-16 40 views
5

我有一个关于春天roo的问题。添加自定义页面在春天roo

如何将自定义页面添加到您的Web应用程序?如果我使用标准的Servlet,它看起来非常简单和容易,但在Spring roo中我完全搞不清楚。 我想要的只是链接到我的自定义页面的主页面(包括菜单等)的链接。

我试图添加一个新的Servlet到应用程序,设置其路径映射到/ custompage。但是当我访问http://localhost:8080/myapp/custompage时,它显示资源不可用。

我也不能在主页面添加链接,我试图直接编辑menu.jspx并失败。

任何人都可以点亮我吗?任何帮助将不胜感激。

+0

你编辑'menu.jspx'时遇到过什么样的失败? – Constantiner 2011-04-16 14:52:34

+0

好吧,菜单列表中没有任何更改。我试图在menu.jspx中复制粘贴一个列表(因此,使列表加倍)以及添加我自己的东西,比如简单的'HELLO'。但它不会改变一件事情。甚至不显示'你好' – Tetrax 2011-04-16 15:04:41

+0

你重新编译你的代码并重新部署它吗? – 2011-04-16 15:23:06

回答

6

首先编辑您的{project_root}/src/main/webapp/WEB-INF/spring/webmvc-config.xml并为您的新页面添加新的mvc:view-controller定义。喜欢的东西:

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

然后打开{project_root}/src/main/webapp/WEB-INF/views/views.xml并添加以下定义:

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

,并添加您custompage.jspx{project_root}/src/main/webapp/WEB-INF/views/文件夹。

然后编辑{project_root}/src/main/webapp/WEB-INF/views/menu.jspx和新的menu:itemurl="/custompage"

我认为它应该工作。

+0

非常感谢。它工作得很好。 – Tetrax 2011-04-16 15:44:33

+1

如果要计算某些内容并将其传递到页面,您可能希望生成控制器。你也可以自己定义不依赖roo主题的瓷砖。 – geoaxis 2011-04-18 00:07:25

6

最简单的方法就是让Roo为你做。 使用controller class --class ~.web.CustomPageController --preferredMapping /custompage Roo将为您创造一切。

确保你只有你需要的结果控制器,因为它不会工作,如果你有多个映射每个请求(我认为在1.1.4的默认值是有一个模糊的映射为简单'get')

+1

我这样做了,并将控制器缩减为仅返回“自定义页面/索引”的一个“索引”方法,并验证了这些视图片段已创建。即使如此,当我浏览到/ myapp/custompage时,我得到Roo“资源未找到”页面。 – 2011-10-07 18:20:11

2

我也做过同样的事情。我遇到了同样的问题。然后我注意到webmvc-config.xml没有输入<mvc:view-controller path="/custompage/index"/>。我把这个入口,现在它正在工作。确保上述代码的存在。