Spring MVC主页控制器
我已经使用Spring Roo生成了一些页面,并且我需要在应用程序的主页上显示来自数据库的一些项目。 所以,我怎么能传递模型与数据主页,袋鼠增加了以下我注释掉Spring MVC主页控制器
<mvc:view-controller path="/" view-name="index"/>
我创建使用袋鼠打电话回家这样
@RequestMapping("/")
@Controller
public class Home {
@RequestMapping(method = RequestMethod.GET)
public String index() {
return "index";
}
}
一个新的控制器线现在所有的页面显示索引视图,甚至/登录。
谢谢。
试试这个:
不要映射到 “/” 的url,它会匹配所有请求(如你所看到的)。 编辑:根据评论,前面句子的突出部分是错误的。解决方法似乎仍然有效。
- 在您的web.xml文件中,配置一个欢迎文件(可能是index.html)。
- 使用index控制器的索引文件名称
@RequestMapping
(也许是“/index.html”)。
另一种选择,如果这还不够
- 在web.xml文件,配置一个JSP欢迎文件(可能的index.jsp)。
- 在您的JSP欢迎文件中,将请求转发到已知的URL(也许/ blammy)。
- 将您的索引控制器映射到已知的URL(例如
@RequestMapping("/blammy")
)。
要传递模型数据,请将Model添加到方法签名中。
对于您的路由问题,请尝试在方法级别映射请求,并确保其他视图具有匹配的映射。即: “/登录”
@Controller
public class Home {
@RequestMapping(value="/", method = RequestMethod.GET)
public String index(Model model) {
String myData = "I want access to this";
model.addAttribute("myData", myData);
return "index";
}
}
不要映射到“/” URL,它会匹配所有请求 – Zeronex 2012-02-29 15:14:01
@Zeronex这是不正确。我相信你正在考虑'
由于我发现自己很困惑与上述混合评论,我想我会写我如何得到它的工作。
在webmvc-config.xml中
-
创建一个新的控制器注释掉
<mvc:view-controller path="/" view-name="index"/>
。我用roo为我创作。但是我意识到它添加了一些与控制器相关的JSPX。由于我不需要它们,我删除了JSPX。控制器样品低于@RequestMapping("/") @Controller public class IndexController { @RequestMapping public String index() { return "redirect:/asas?page=1&size=10"; } }
你几乎可以调用任何现有的控制器方法。在我的情况下,我希望它显示从数据库中检索的某些项目。
在我的研究中,通过加入@RequestMapping("/")
而不是并不是强制每一个请求都落在这个控制器中。它只发生在您点击应用程序基础URI时。
对我的作品被定义请求映射为默认welcome-file
路径:
@Controller
public class Home {
@RequestMapping("/index.html")
public String index() {
return "index";
}
}
我想知道为什么这么简单的事情需要所有这些工作。因为我真的不喜欢重定向或为应用程序添加前缀。再次感谢。 – Zeronex 2012-02-29 15:15:16
另外我想知道为什么 只匹配主页,在控制器中它会匹配所有内容...? –
Zeronex
2012-02-29 15:18:29
虽然这会起作用,但并非100%准确。 “/”不会匹配所有请求。在你的例子中,它只会匹配所有请求到这个控制器,我想你想要的。要从持久层获取数据到模型,请按照以下建议的BrandonV进行操作,并将'Model'放入您的方法签名中,并为其添加任何属性。 – 2012-02-29 15:43:02