2013-10-06 76 views
3

当我尝试加载http://localhost:8080/people时,我收到一个404页未找到的错误。弹簧servlet映射不起作用

这是我的servlet映射iwthin web.xml中:

<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/people/*</url-pattern> 
</servlet-mapping> 

这是我如何理解它的工作原理:

一个URL请求http://localhost:8080/people会由servlet“春天里”被截获,并调用类org.springframework.web.servlet.DispatcherServlet这是正确的吗?

我是否需要一些额外的配置才能正确加载此类?

更新:

这里是控制器:

@Controller 
public class PersonController { 

    @Autowired 
    private PersonService personService; 

    @RequestMapping("/") 
    public String listPeople(Map<String, Object> map) { 

     map.put("person", new Person()); 
     map.put("peopleList", personService.listPeople()); 

     return "people"; 
    } 

    @RequestMapping(value = "/add", method = RequestMethod.POST) 
    public String addPerson(@ModelAttribute("person") Person person, BindingResult result) { 

     personService.addPerson(person); 

     return "redirect:/people/"; 
    } 

    @RequestMapping("/delete/{personId}") 
    public String deletePerson(@PathVariable("personId") Integer personId) { 

     personService.removePerson(personId); 

     return "redirect:/people/"; 
    } 
} 
+0

什么是'people'?它是JSP页面吗?如果没有,那么没有什么可显示的,你会看到一个_blank页面。 –

回答

1

你有controller后盾来支持你的GET回应?

像这样的事情

@Controller 
@RequestMapping(value = "/people") 
public class LoginController { 

    @RequestMapping(value = "/i_am_here", method = RequestMethod.GET) 
    public String firstForm() { 
     return "SHOW_ME_THE_JSP_PAGE"; 
    } 
} 

基于上面的例子中,这会让喜欢你的GET URL请求 - > /人/ i_am_here

方法将被调用和响应可以在JSP被送回。

Checkout this example under Github

https://github.com/hth/StatusInvoke/blob/master/src/com/example/UserController.java

+0

是的,我已经发布了控制器 –

+0

好吧,代码中的“人”字符串是什么?它是指一些网页?我已经添加了一个链接到现有的控制器。请看这个例子。如果你有问题,请让我知道。 –

+0

我不知道,这是一个我想要配置的heroku应用程序。当添加您的代码时,我收到了以下消息:“HTTP状态404 - /spring-hibernate-template/WEB-INF/jsp/SHOW_ME_THE_JSP_PAGE.jsp”这对我来说很有意义,因为.jsp尚未配置。代码@RequestMapping(method = RequestMethod.GET)是否充当控制器的默认获取请求映射? –