java - 使用 MultiActionController 定义 Spring Rest API

标签 java spring rest servlets web.xml

我正在致力于在 JBoss servlet 引擎中使用 Java/Spring/Maven 并利用 MultiActionController 来设置 REST api。

什么I want to do is to group requests to a Single controller例如: 所有/requestA goes to Controller a ,有几种方法可以满足不同的请求,例如 -/requestA/add.do goes to add-function

  • /requestA/delete.do goes to delete-function.

我一直在阅读 Spring 文档: http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.htmlhttp://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch16s03.html#mvc-controller-multiaction

但是我在 xml 中的调度程序配置中遇到了一些问题。 有谁知道如何在 Spring MVC 中实现这一点的好例子。

springapp-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <bean name="/test/*.do" class="org.test.TestControllerA" />
</beans>

web.xml

   <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>springTest</display-name>

    <servlet>
        <servlet-name>springapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
</web-app>

和 Java Controller

    public class TestControllerA extends MultiActionController {

    @RequestMapping("/TEST")
    public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception {
    System.out.println("Test42");
    return new ModelAndView();
  }
}

最佳答案

您缺少 servlet 映射

<servlet-mapping>
    <servlet-name>springapp</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

您的网址具有扩展名*.do,但未映射到springapp。因此,将上述配置添加到您的 web.xml

关于java - 使用 MultiActionController 定义 Spring Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15221685/

相关文章:

rest - 尝试获取 acumatica 中特定商品的销售价格时,无法执行优化错误

http - HTTP 'Authorization' Header 的多种认证方案

java - 将二维数组变量加载到类实例中

java - Clojure - "Exception in thread "main“java.lang.ClassCastException : seesaw. core.proxy”

java - Spring 配置文件 : Which <beans> element should be parsed?

spring - @ActiveProfile 和 spring.profiles.active

java - 如何将 Android View 的原点移至其中心?

java - 通过套接字发送对象导致 SocketException

java - 将@Validated 和@Valid 与spring validator 一起使用

javascript - 使用 Angular Resource 通过字符串参数查询 REST API