Spring 春天和休息

Spring 春天和休息,spring,rest,Spring,Rest,我创建了下面的代码,但在DispatcherServlet(名称为“restspring”)中,当我使用访问服务时,似乎没有找到URI为[/restspring/service/employees/1]的HTTP请求的映射http://localhost:8080/restspring/service/employees/1. 我错过什么了吗 web.xml Employees.java 非常感谢你的帮助 谢谢。生成的war文件的名称是什么?默认情况下,它构成了您的上下文根,应该添加到请求url

我创建了下面的代码,但在DispatcherServlet(名称为“restspring”)中,当我使用访问服务时,似乎没有找到URI为[/restspring/service/employees/1]的HTTP请求的映射http://localhost:8080/restspring/service/employees/1. 我错过什么了吗

web.xml Employees.java 非常感谢你的帮助


谢谢。

生成的war文件的名称是什么?默认情况下,它构成了您的上下文根,应该添加到请求url中/service/employees/1之前的请求中。web.xml的名称只是将由标识的请求映射到特定servlet的逻辑名称,而不是url的一部分。当您发出请求时,请尝试忽略它。

我没有看到检测控制器的组件扫描。如果你错过了,就把它放进去。样品

<context:component-scan base-package="org.myProject.controller"/>
这将检测@Controller注释,并自动启用以处理注释


有关更多信息,请查看上的链接。

我认为您缺少中给出的一些步骤

您需要定义两个bean

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
然后添加控制器路径的组件扫描 前


使用哪种版本的spring?请求失败后,服务器中是否有任何错误消息?
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org    /TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<table border=1>
<thead><tr>
    <th>FirstName</th>
    <th>LastName</th>
</tr></thead>
<c:forEach var="employee" items="${employees.employees}">
<tr>
    <td>${employee.firstName}</td>
    <td>${employee.lastName}</td>
</tr>
</c:forEach>
</table>


</body>
</html>
package spring3.rest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import spring3.rest.bean.Employees;

@Controller
@RequestMapping("/employees")
public class EmployeesController {
  @RequestMapping(method=RequestMethod.GET, value="/{id}")
  public ModelAndView getEmployee(@PathVariable("id") String id){
      Employees e = new Employees();
      e.setFirstName("Eugene");
      e.setLastName("Anthony");
      return new ModelAndView("employees", "employees", e);
  }
}
package spring3.rest.bean;

public class Employees {
private String firstName;
private String lastName;

public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
}
<context:component-scan base-package="org.myProject.controller"/>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<context:component-scan base-package="org.springframework.samples.petclinic.web"/>