关闭

Spring MVC学习一

112人阅读 评论(0) 收藏 举报
分类:

Spring MVC是一个构建服务器应用的框架,提供了标准的MVC设计模式,可以在此基础上比较方便的开发web程序。

一、Spring MVC环境配置

       在较早的没有提供注解机制的版本中,spring mvc各模块件间的映射主要是以配置文件的方式来联系的。在项目中有两个描述配置信息的xml文件。分别是web.xml和xxx-servlet.xml,二者可以都放在WEB-INF的目录下。

       其中web.xml是每个web项目都必需的文件,在这里用来将http请求递交给Spring框架去处理。这里还可以写一些通用的过滤器,比如编码方式转换等。(xxx为自己的命名)

       而xxx-servlet.xml文件则用来配置具体的url与处理方法的映射。即将每一个url请求递交给相应的方法去处理。在这里需要让控制器对应的类实现Controller接口的handleRenderRequest方法。

<pre name="code" class="java"><!--未使用注解时需要配置映射  -->
	<bean id = "urlMapping" class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name = "mappings">
			<props>
				<!-- key代表url,参数表示控制器的id,即下面的bean -->
				<prop key = "hello.do">helloController</prop>
			</props>
		</property>
	</bean>
<bean id = "helloController" class = "com.controllers.HelloController"/>
      




二、请求处理的方式

       Spring MVC的请求处理是方法级别的。一个请求一般对应一个方法,请求中包含的参数可以被方法读取到,经过处理后进行响应返回。方法的返回值一般都是一个ModelAndView对象。包含返回页面与返回模型(数据)。在页面中可以读取模型中的参数来显示。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~11/20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       今天接触的是基于注解机制的Spring MVC配置方式。使用注解基本上可以不用在xxx-servlet.xml中来进行url映射,而是使用@RequestMapping(“hello”)这样的方式来实现映射。

       在使用注解时,控制器对应的类不再需要实现Controller接口,而是在该类前面加上@Controller注解,然后再方法前加上@RequestMapping注解。如

@Controller
public class HelloController {
       //@ResponseBody用来声明返回值为数据,将会直接写入到HTTP的body中。
       @ResponseBody
       @RequestMapping("getJson")
       public String getJson(){
		Map model = new HashMap();
		model.put("cytus", getHello());
		Gson gson = new Gson();
		String result = gson.toJson(model);
		return result;
		}
这样就将url与方法对应起来了。

        在上面的代码中返回值并不是一个ModelAndView对象,而是一个Json格式的字符串,所以需要再增加一个@ResponseBody的注解,这个注解用来声明该方法的返回值为基本数据,而不是一个模型视图,会直接以body内容的形式写入到返回流中。对于服务器与移动应用间采用Json方式交换数据的通信来说是比较方便的。




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42266次
    • 积分:1211
    • 等级:
    • 排名:千里之外
    • 原创:81篇
    • 转载:4篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论