springmvc注解开发handler

在springmvc3.1版本以前,

会默认加载一个注解映射器:org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

和一个注解适配器:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

在3.1版本之后,它们已经不被建议使用了。现在建议使用如下的注解映射器和适配器来代替它们:

mapping:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

adapter:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

下面介绍下使用注解开发handler的步骤:

1、配置注解映射器

<!-- 注解映射器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

2、配置注解适配器

<!-- 注解适配器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

注意:该适配器不要求实现任何接口,但它需要与RequestMappingHandlerMapping注解映射器配对使用;

  在handler中使用@Controller标识此类是一个handler控制器

  使用@RequestMapping指定handler中的方法所对应的url

3、开发handler

package com.js.springmvc01;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.js.po.Items;

/**
 * 第3个controller
 * 适配:RequestMappingHandlerAdapter,注解方式开发
 * 该适配器不要求实现任何接口
 * 该适配器要求与RequestMappingHandlerMapping搭配使用
 * 入门程序:商品列表的查询
 * @author jiangs
 *
 */
@Controller
public class ItemController03 {
	/**
	 * @RequestMapping中的url我们建议和方法名一致,但这不是强制要求
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping("/query")
	public ModelAndView queryItem(){
		//使用静态数据把商品列表显示在jsp页面
		List<Items> itemsList = new ArrayList<Items>();
		Items items_1 = new Items();
		items_1.setName("联想笔记本");
		items_1.setPrice(6000f); 
		items_1.setDetail("ThinkPad T430联想笔记本电脑");
		Items items_2 = new Items();
		items_2.setName("苹果手机");
		items_2.setPrice(5000f);
		items_2.setDetail("iphone6苹果手机!");
		itemsList.add(items_1);
		itemsList.add(items_2);
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("itemsList", itemsList);
		modelAndView.setViewName("/WEB-INF/jsp/itemsList.jsp");
		return modelAndView;
	}
}

4、配置handler:

<bean class="com.js.springmvc01.ItemController03"/>

虽然在handler中配置的RequestMapping中路径为“/query”,但是由于我在web.xml中DispatcherServlet配置如下:

<servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<!--
  		可以配置/,此工程所有的请求全部由springmvc解析,此种方式可以实现RESTful 方式,需要特殊处理静态文件的解析,不能由springmvc解析
  		可以配置*.do或*.action,所有请求的扩展名为.do或.action时,由springmvc来解析,此种方法常用
  		不可以配置/*,如果配置/*,返回jsp也由springmvc解析,会再次经过springmvc处理,这是不对的
  	 -->
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>

所以在浏览器中访问/query.action方可访问到结果。


另外,当大量使用注解方式开发handler时,建议使用如下的spring组件扫描来代替繁琐的手动配置handler:

<context:component-scan base-package="com.js.springmvc01"></context:component-scan>


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值