我是使用Spring MVC进行开发的新手。我正在尝试从我的jsp文件调用控制器。我把requestmapping注解给了控制器,但是当我试图从我的mainview.jsp调用时,这个url是:"/AirlineDB_Spring/views/mainview.jsp“(这很好用),项目名称从url中消失了,我得到的地址是404:"/passengers/”我不知道为什么"AirlineDB_Spring/“会从链接中消失,这看起来是主要的问题。
我的控制器代码:
@Controller
@RequestMapping(value="/passengers")
public class PassengerController{
@SuppressWarnings("unchecked")
@RequestMapping(method=RequestMethod.GET)
public String list(Model model) {
List<String> tl = new ArrayList<String>();
tl.add("one");
tl.add("two");
tl.add("three");
model.addAttribute("testlist", tl);
return "mainview";
}我的jsp文件的代码是:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Airline Database</title>
</head>
<body>
<h2>Passengers</h2>
<a href="/passengers/">click</a>
<c:forEach items="${model.testlist}" var="test" varStatus="loopStatus">
${loopStatus.count} ${test}<br/>
</c:forEach>
</body>
</html>我的web.xml文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:WEB-INF/spring/*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>airlinedb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>airlinedb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>THe servlet-Conext.xml包含以下内容:
<context:annotation-config/>
<context:component-scan base-package="airlinedb.controller"/>
<mvc:annotation-driven/>我在互联网上搜索了一下,发现了很多与控制器映射相关的问题,但这些问题对我来说都不起作用,我也试着用href="/passenger“调用控制器,但得到了相同的404。我不知道我遗漏了什么配置,我可以看到我得到了错误的url,但我不知道哪里可能是错误的。有谁可以帮我?
发布于 2013-07-11 15:39:57
这两种方法中的任何一种都应该有效。您可以使用索引方法,这是默认的映射。
@RequestMapping(value="/", method=RequestMethod.GET)
public String list(Model model) {
// ...
}或者将list重命名为index,如下所示
@RequestMapping(method=RequestMethod.GET)
public String index(Model model) {
// ...
}https://stackoverflow.com/questions/17587505
复制相似问题