Spring MVC 初体验(二)

Spring MVC 中给我们提供了一个AbstractCommandController的抽象类,继承该类的Controller并重写handler方法这样我们就能接收域模型对象了,注意该方法签名为

 

其中我们的Command对象就是域模型对象了,在继承了AbstractCommandController的子类中我们应该首先在构造方法中设置模型对象,如下:

 

这里查看下我们的Employee类的代码:

这里省略了get,set方法。假设我们有一个登陆的需求,那么页面的简单设计应该为:

注意,这里的input标签中的name属性应该和我们Employee类中的属性相对应。

当点击提交之后则会进入我们相应的controller中处理。

 

这样我们就完整的了解了一个登陆请求的流程。可是如果我们在登陆中输入了空字串或者非法的字串又该如何解决呢?其实Spring为我们提供了一个Vaildator接口,专门用来做验证的,我们可以实现它,做一系列的验证规则。在这里的例子中,我们是要对Employee进行验证:

这里说明一下ValidationUtils.rejectIfEmpty方法中的第二个参数,这里表示的是我们employee对象中的哪一项属性正在被验证,如果填写错误的话(譬如我们将name改成sssname),将出现Invalid property 'sssname' of bean class [org.jst4me.spring.mvc.entites.Employee]: Bean property 'sssname' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 这样的异常。配置好Log4j.properties文件,在登陆的Controller中测试,如果我们的登陆中不输入密码,控制台中打印 ValidationUtils - Validator found 1 errors 说明我们的校验器发现了1个错误刚才忘了说明一点的是,我们自己写的校验器要作用于某个Controller中,我们必须将它注入进controller,如下:

第一步先将自己写的校验器配置成Bean,然后将其注入到我们的Controller中。这样校验器就可以工作了。这里我做的时候继承的是AbstractCommandController,其实对于表单的这样的页面需求我们采用SimpleFormController 将更加的方便。我会在近期列举出SimpleFormController的使用方式以及声明式的验证规则供大家学习和交流。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值