2013-10-06 117 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)是否充當控制器的默認獲取請求映射? –