Spring servlet 映射不起作用

标签 spring tomcat servlets spring-mvc

当我尝试加载 http://localhost:8080/people 时,我收到 404 页面未找到错误。

这是我在 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>

我的理解是这样的:

http://localhost:8080/people 的 url 请求将被 servlet“spring”拦截并调用类 org.springframework.web.servlet.DispatcherServlet 这是正确的吗?

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

更新:

这是 Controller :

@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/";
    }
}

最佳答案

你有 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 中发回。

Checkout this example under Github

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

关于Spring servlet 映射不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213779/

相关文章:

java - 如何在事务期间将只读 hibernate session 转换为写入(主/从数据库)

jakarta-ee - TOMCAT 在子目录中有 webapps

java - HttpServletRequest 获取 JSON POST 数据

javascript - 如何使用 javascript 将参数从 JSP 传递到 Servlet

eclipse - 找不到 Tomcat 类 - Servlet

java - 带有外部 Web 服务监控的 Spring Integration 应用程序

java - 具有主键保留序列更新的数据库多线程

java - 禁用 springframework 的日志记录

java.lang.IllegalArgumentException : Document base tomcat\webapps\appdata does not exist or is not a readable directory 异常

tomcat - 我应该把哪些 .jar 文件放在哪里才能将 jersey 与 tomcat 一起使用?