开发表单控制器

/** 
 * @Description:表单控制器
 * 
 * @author youyang_java@139.com
 * 
 */
@Controller
@RequestMapping("/edit.htm")
@SessionAttributes("curDemo")
public class FormController {
	
	@Resource
	private Validator demoValidator;
	
	@InitBinder
	public void initBinder(WebDataBinder binder){
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		format.setLenient(false);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(format,false));
	}
	
	@ModelAttribute("birthes")
	public Map<String, String> getList(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("2011-4-28","生日1");
		map.put("2011-5-2","生日2");
		map.put("2011-6-28","生日3");
		map.put("2011-6-2","生日4");
		return map;
	}

	@RequestMapping(method=RequestMethod.GET)
	public String setUpForm(@RequestParam(required=false)String name,ModelMap map){
		Demo demo = new Demo();
		if (StringUtils.isNotBlank(name)) {
			System.out.println(name);
			demo.setName(name);
			demo.setId(1l);
		}
		map.put("curDemo", demo);
		return "/test/editForm";
	}
	
	@RequestMapping(method=RequestMethod.POST)
	public String processSubmit(@ModelAttribute("curDemo")Demo demo,BindingResult result,SessionStatus status,ModelMap map){
		
		demoValidator.validate(demo, result);
		
		if (result.hasErrors()) {
			return "/test/editForm";
		}
		
		Demo curDemo = (Demo) map.get("curDemo");
		System.out.println("curDemo------"+curDemo.getId());
		System.out.println("curDemo------"+curDemo.getName());
		System.out.println("curDemo------"+curDemo.getBirth());
		System.out.println(demo.getId());
		System.out.println(demo.getName());
		System.out.println(demo.getBirth());
		
		status.setComplete();
		
		return "redirect:/success.htm";
	}
	
}

 

@InitBinder
public void initBinder(WebDataBinder binder)

@InitBinder注解将定制的属性编辑器注册到绑定对象上。

@ModelAttribute("birthes")
public Map<String, String> getList()
把@ModelAttribute注解使用到方法上,则在表单在展示前会调用该方法,并把方法的返回值放到模型中。

 

@RequestMapping(method=RequestMethod.POST)
public String processSubmit(@ModelAttribute("curDemo")Demo demo,BindingResult result,SessionStatus status,ModelMap map)

把@ModelAttribute注解使用到方法参数上,可以从模型中得到命令对象,并绑定到方法上。不过该注解可以不使用。

 

status.setComplete();

表单执行完成,清空session里面的值。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值