MultiActionController对表单的验证

用 MultiActionController 实现 SimpleFormController的部分功能?

关键字: Spring
Controller
Java代码 复制代码
  1. protected BindException bindObject(HttpServletRequest request,   
  2.         Object command, Validator validator) throws Exception {   
  3.     ServletRequestDataBinder binder = createBinder(request, command);   
  4.     binder.bind(request);   
  5.     BindException errors = new BindException(command,   
  6.             getCommandName(command));   
  7.     if (validator.supports(command.getClass())) {   
  8.         ValidationUtils.invokeValidator(validator, command, errors);   
  9.     }   
  10.     return errors;   
  11. }  
	protected BindException bindObject(HttpServletRequest request,
			Object command, Validator validator) throws Exception {
		ServletRequestDataBinder binder = createBinder(request, command);
		binder.bind(request);
		BindException errors = new BindException(command,
				getCommandName(command));
		if (validator.supports(command.getClass())) {
			ValidationUtils.invokeValidator(validator, command, errors);
		}
		return errors;
	}


Java代码 复制代码
  1. TestFormBean formBean = new TestFormBean();   
  2. Collection testList = new ArrayList();   
  3.   
  4. TestSelect a = new TestSelect();   
  5. a.setCode("1");   
  6. a.setName("a");   
  7.   
  8. TestSelect b = new TestSelect();   
  9. b.setCode("2");   
  10. b.setName("b");   
  11.   
  12. TestSelect c = new TestSelect();   
  13. c.setCode("3");   
  14. c.setName("c");        
  15.   
  16. testList.add(a);   
  17. testList.add(b);   
  18. testList.add(c);       
  19.   
  20.   
  21. BindException errorModule = bindObject(request, formBean,   
  22.         new TestValidator());   
  23. if (errorModule.hasErrors()) {   
  24.     Map model = errorModule.getModel();   
  25.     model.put("testList", testList);   
  26.     return new ModelAndView("loginview", model);   
  27. }  
			TestFormBean formBean = new TestFormBean();
			Collection testList = new ArrayList();
			
			TestSelect a = new TestSelect();
			a.setCode("1");
			a.setName("a");

			TestSelect b = new TestSelect();
			b.setCode("2");
			b.setName("b");
			
			TestSelect c = new TestSelect();
			c.setCode("3");
			c.setName("c");		
			
			testList.add(a);
			testList.add(b);
			testList.add(c);	


			BindException errorModule = bindObject(request, formBean,
					new TestValidator());
			if (errorModule.hasErrors()) {
				Map model = errorModule.getModel();
				model.put("testList", testList);
				return new ModelAndView("loginview", model);
			}


FormBean
Java代码 复制代码
  1. public class TestFormBean {   
  2.     private String username;   
  3.     private String password;   
  4.     private Integer tokennumber;   
  5.     private String testSelect;   
  6.     private boolean testCheckBox;   
  7.     private String testRadio;   
  8.     private String testTextArea;   
  9.     private String testHidden;   
  10.     public boolean getTestCheckBox() {   
  11.         return testCheckBox;   
  12.     }   
  13.     public void setTestCheckBox(boolean testCheckBox) {   
  14.         this.testCheckBox = testCheckBox;   
  15.     }   
  16.   
  17.     public String getTestHidden() {   
  18.         return testHidden;   
  19.     }   
  20.   
  21.     public void setTestHidden(String testHidden) {   
  22.         this.testHidden = testHidden;   
  23.     }   
  24.   
  25.     public String getTestRadio() {   
  26.         return testRadio;   
  27.     }   
  28.   
  29.     public void setTestRadio(String testRadio) {   
  30.         this.testRadio = testRadio;   
  31.     }   
  32.   
  33.     public String getTestTextArea() {   
  34.         return testTextArea;   
  35.     }   
  36.   
  37.     public void setTestTextArea(String testTextArea) {   
  38.         this.testTextArea = testTextArea;   
  39.     }   
  40.   
  41.   
  42.     public String getPassword() {   
  43.         return password;   
  44.     }   
  45.   
  46.     public void setPassword(String password) {   
  47.         this.password = password;   
  48.     }   
  49.   
  50.     public String getUsername() {   
  51.         return username;   
  52.     }   
  53.   
  54.     public void setUsername(String username) {   
  55.         this.username = username;   
  56.     }   
  57.   
  58.     public Integer getTokennumber() {   
  59.         return tokennumber;   
  60.     }   
  61.     public void setTokennumber(Integer tokennumber) {   
  62.         this.tokennumber = tokennumber;   
  63.     }   
  64.   
  65.     public String testSelect() {   
  66.         return testSelect;   
  67.     }   
  68.   
  69.     public void setTestSelect(String testSelect) {   
  70.         this.testSelect = testSelect;   
  71.     }   
  72.   
  73.     public String getTestSelect() {   
  74.         return testSelect;   
  75.     }   
  76. }  
public class TestFormBean {
	private String username;
	private String password;
	private Integer tokennumber;
	private String testSelect;
	private boolean testCheckBox;
	private String testRadio;
	private String testTextArea;
	private String testHidden;
	public boolean getTestCheckBox() {
		return testCheckBox;
	}
	public void setTestCheckBox(boolean testCheckBox) {
		this.testCheckBox = testCheckBox;
	}

	public String getTestHidden() {
		return testHidden;
	}

	public void setTestHidden(String testHidden) {
		this.testHidden = testHidden;
	}

	public String getTestRadio() {
		return testRadio;
	}

	public void setTestRadio(String testRadio) {
		this.testRadio = testRadio;
	}

	public String getTestTextArea() {
		return testTextArea;
	}

	public void setTestTextArea(String testTextArea) {
		this.testTextArea = testTextArea;
	}


	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public Integer getTokennumber() {
		return tokennumber;
	}
	public void setTokennumber(Integer tokennumber) {
		this.tokennumber = tokennumber;
	}

	public String testSelect() {
		return testSelect;
	}

	public void setTestSelect(String testSelect) {
		this.testSelect = testSelect;
	}

	public String getTestSelect() {
		return testSelect;
	}
}


Validator
Java代码 复制代码
  1. public class TestValidator implements Validator {   
  2.     public boolean supports(Class clazz) {   
  3.         return TestFormBean.class.equals(clazz);   
  4.     }   
  5.   
  6.     public void validate(Object obj, Errors errors) {   
  7.         TestFormBean fromBean = (TestFormBean) obj;   
  8.         Integer tokennumber = fromBean.getTokennumber();   
  9.         if (null == tokennumber || tokennumber.intValue() <= 1000)   
  10.             errors.rejectValue("tokennumber""test"null"must > 1000");   
  11.     }   
  12. }  
public class TestValidator implements Validator {
	public boolean supports(Class clazz) {
		return TestFormBean.class.equals(clazz);
	}

	public void validate(Object obj, Errors errors) {
		TestFormBean fromBean = (TestFormBean) obj;
		Integer tokennumber = fromBean.getTokennumber();
		if (null == tokennumber || tokennumber.intValue() <= 1000)
			errors.rejectValue("tokennumber", "test", null, "must > 1000");
	}
}


JSP
Java代码 复制代码
  1. <form:form commandName="command" name="cmForm" action="/cm/loginproc.htm">   
  2.            <form:input path="username"/>   
  3.       <spring:bind path="command.password">   
  4.        <input name="password" value='<c:out value="${status.value}"/>'>   
  5.        <c:out value="${status.errorMessage}"/>   
  6.       </spring:bind>    
  7.       <spring:bind path="command.tokennumber">   
  8.        <input name="tokennumber" value='<c:out value="${status.value}"/>'>   
  9.        <c:out value="${status.errorMessage}"/>   
  10.       </spring:bind>     
  11.         <form:select path="testSelect">   
  12.             <form:option value="-" label="--Please Select"/>   
  13.             <form:options items="${testList}" itemValue="code" itemLabel="name"/>   
  14.         </form:select>   
  15.         <form:checkbox path="testCheckBox"/>   
  16.     <form:radiobutton path="testRadio" value="1"/>   
  17.     <form:radiobutton path="testRadio" value="2"/>   
  18.     <form:textarea path="testTextArea" rows="3" cols="20"/>   
  19.     <form:hidden path="testHidden"/>   
  20.    </form:form>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值