【问题标题】:Adding a custom page in spring roo在 spring roo 中添加自定义页面
【发布时间】:2011-04-16 14:47:37
【问题描述】:

我有一个关于春袋鼠的问题。

如何将自定义页面添加到您的 Web 应用程序?如果我使用标准 Servlet,这似乎非常基本和容易,但我完全困惑在 Spring roo 中执行此操作。 我想要的只是主页中的一个链接(带有菜单等),该链接链接到我的自定义页面。

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

我也无法在主页添加链接,我尝试直接编辑menu.jspx,但失败了。

谁能告诉我这个?任何帮助将不胜感激。

【问题讨论】:

  • 你在编辑menu.jspx时遇到过什么样的失败?
  • 好吧,菜单列表没有任何变化。我试图在 menu.jspx 中复制粘贴一个列表(因此,使列表加倍)以及添加我自己的东西,比如一个简单的“HELLO”。但这并没有改变任何事情。甚至不显示“HELLO”
  • 你重新编译你的代码并重新部署了吗?
  • 是的,我有。它仍然没有改变任何东西。但是,我随后重新启动了 STS,现在它可以工作了。

标签: spring-roo


【解决方案1】:

首先编辑您的{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/ 文件夹。

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

我认为它应该有效。

【讨论】:

  • 如果你想计算一些东西,你可能想生成一个控制器,然后将它传递给页面。您可能还希望拥有自己的不依赖于 roo 主题的磁贴定义。
【解决方案2】:

最简单的方法是让 Roo 为您完成。 使用controller class --class ~.web.CustomPageController --preferredMapping /custompage,Roo 将为您创建一切。

确保您在生成的控制器中只有您需要的东西,因为如果每个请求有多个映射,它将无法工作(我认为 1.1.4 中的默认设置是简单的 ' 存在不明确的映射得到')

【讨论】:

  • 我这样做了,并将控制器缩减为仅返回“custompage/index”的一个“index”方法,并且我验证了这些视图片段已创建。尽管如此,当我浏览到 /myapp/custompage 时,我得到了 Roo “找不到资源”页面。
【解决方案3】:

我也是这样做的。我遇到了同样的问题。然后我注意到webmvc-config.xml 没有&lt;mvc:view-controller path="/custompage/index"/&gt; 的条目。我输入了条目,现在它正在工作。确保存在上述代码。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多