【发布时间】:2012-02-10 15:39:50
【问题描述】:
是否可以在不使用视图解析器的情况下使用 Spring 3.1 MVC?
我问的原因是因为我只是想构建和创建一个 Web 服务,而不是一个网站,所以我根本不需要呈现任何 JSP 或 html 页面。我想使用 Spring 3.1 构建一个 RESTful Web 服务。
这可能吗?
这是我的 servlett 的样子,摘自教程:
这是我的 mvc-config.xml 这是我的 Web.xml<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>FreedomSpring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FreedomSpring</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
</web-app>
这是我的控制器 java 类,它只是想从特定的 http REST 请求返回一个字符串,而不是可以这么说的“ModelAndView”对象
package com.jr.freedom.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class Hello {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String helloWorldInJson() {
return "hello";
}
}
另外,我如何捕获客户端可能发送给我的请求参数?这可能使用弹簧注释吗?我知道我可以在以前的 Spring 2.x 中使用 HttpServletRequest 和 HttpServletResponse 来获取从客户端发送的任何参数,并将对象以及 JSON 对象返回给用户。
我只是在寻找一个简单的例子:
从客户端获取参数和可能的 HTTP 标头请求我的控制器类并将它们映射到某个 Java 对象“例如,客户端向我发送注册到我的后端服务的新用户对象的详细信息(用户名、密码等等),我希望能够将其映射到我的 Java 类 Called User"
将任何类型的对象(如字符串、json 或 xml 数据)的响应返回给客户端。
我对 Spring 3.0 很陌生。我很久以前在 Spring 2.0 上做了一些工作,但注释似乎是现在要走的路,不知道如何通过注释来做到这一点。
谢谢
另外,要执行 helloWorldInJson() 的上述控制器方法,我只需调用 http://localhost/FreedomSpring/hello 吗?
【问题讨论】:
-
最后一个问题,如果“FreedomSpring”是你的战争名称,是的。
标签: spring