3

当我尝试加载时http://localhost:8080/people收到 404 page not found 错误。

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

<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“spring”拦截并调用该类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/";
    }
}
4

1 回答 1

2

你有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";
    }
}

基于上面的例子,这将使你的获取 URL 请求像 -> /people/i_am_here

方法将被调用并且响应可以被发送回JSP

在 Github 下查看此示例

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

于 2013-10-06T20:52:15.950 回答