spring MVC之用注解开发控制器(二)

spring MVC之用注解开发控制器(二)

---------

 

接上一篇

 

开发单动作和多动作的控制器

 

基于注解的控制器类可以是个任意类,不实现特殊接口,也不扩展特殊的基类。你只要用@Controller注解对它进行标注即可。还可以在控制器中定义一个或者多个处理程序方法来处理单个或者多个动作。处理程序方法的签名很灵活,足以接受一系列参数。

@RequestMapping注解可以被应用到类级别或者方法级别上。第一种映射策略是将一个特定的URL模式映射到控制器类,然后将特定的HTTP方法映射到每个处理程序方法。

package com.apress.springrecipes.court.web;
...
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/welcome.htm")
public class WelcomeController{
	@RequestMapping(method = RequestMethod.GET)
	public ModelAndView welcome(){
		Date today = new Date();
		return new ModelAndView("welcome","today",today);
	}
}
 

 

 

第二种策略是直接将URL模式映射到每个处理程序方法中去,无需为控制器类定义映射。

package com.apress.springrecipes.court.web;
...
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MemberController{
	private MemberService memberService;
	@Autowired
	public MemberController(MemberService memberService){
		this.memberService = memberService;
	}
	@RequestMapping("/member/add.htm")
	public String addMember(Member member){
		memberService.add(member);
		return "redirect:list.htm";
	}
	@RequestMapping("/member/remove.htm")
	public String removeMember(@RequestParam("memberName"String memberName)){
		memberService.remove(memberName);
		return "redirect:list.htm";
	}
	@RequestMapping("/member/list.htm")
	public ModelAndView listMember(){
		List<Member> members = memberService.list();
		return new ModelAndView("memberList","members",members);
	}
}

你可以为处理程序方法指定一系列的参数。例如,在add()方法中,指定一个Member类型的命令对象作为方法参数。然后,将请求参数绑定到这个对象的同名属性上。在remove()方法中,通过@RequestParm()方法指定一个绑定到请求参数的方法参数。默认情况下,与@RequestParam()注解绑定的请求参数是必要的。如果是可选的请求参数,可以将required属性设置为false.

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值