我正在尝试使用SpringMVC创建一个简单的应用程序用于学习目的。我希望以这种格式获取各种动作的网址
http://localhost:8080/appname/controllername/actionname.html
DispatcherServlet的servlet-mapping中指定的url-pattern是
<url-pattern>*.html</url-pattern>
这是我在ContactController中的一个方法
@RequestMapping("list.html")
public ModelAndView showContacts() {
ModelAndView modelandview = new ModelAndView("list");
modelandview.addObject("message","Your contact book");
return modelandview;
}
当我导航到
时,现在一切正常http://localhost:8080/appname/list.html
但是我想要网址,
http://localhost:8080/appname/contact/list.html
我尝试在方法之上使用@RequestMapping("/contact/list.html")
,但它没有帮助(显示404错误描述请求的资源()不可用)。
如何做到这一点?
此外,是否可以为servlet映射设置多个url模式,例如。 *.html or *.do
?
PS。我在Ubuntu桌面上使用apache-tomcat
由于
答案 0 :(得分:1)
添加
@RequestMapping("/controllername")
课前宣言。
答案 1 :(得分:0)
你试过这个吗?
@RequestMapping("/contact")
public class ContactController
{
@RequestMapping("/list.html")
public ModelAndView showContacts()
{
// ...
}
}
此外,@RequestMapping
接受一个字符串数组以允许多个映射。
答案 2 :(得分:0)
This is easily remedied by using an XML-configured strategy for matching URI paths to controller classes and @RequestMapping annotations for method-level mapping only.
有关详细信息,请参阅http://www.infoq.com/articles/spring-2.5-ii-spring-mvc
上的Removing Class-Level Request Mappings
一章