浅谈SpringMVC中的AbstractWizardFormController

~~
记得项目中有好多地方是wizard模式的交互。我常常建议组员按照SpringMVC提供的参考来开发。但当时比较紧张,《spring开发参考》也没有太多的说明,又没有时间去研究AbstractWizardFormController的用法。所以无法给他们太多的指导,任由他们自己想办法实现功能再说。毕竟按时完成任务还是主要的!
 
wizard模式一般都分几步,其中我们至少有两步需要跟数据库交互。如果第一次和数据库交互失败则要跳到错误页面,问题是出现在这里。我们错误认为wizard是一走到底,中间出现问题就不知道怎么处理了。故用很多普通controller来实现。
 
今天看了spring的源代码,发现我们的思维有点问题。把思维放宽一点来看,不管和数据库交互多少次,只要失败就认为是校验不通过。spring提供现成的校验接口,如果校验不通过,想去那个页面就很简单了。基本不用我们操心。
 
参考代码如下(摘自jpetstore):
     protected   void  validatePage(Object command, Errors errors,  int  page)  {
        OrderForm orderForm 
= (OrderForm) command;
        OrderValidator orderValidator 
= (OrderValidator) getValidator();
        errors.setNestedPath(
"order");
        
switch (page) {
            
case 0:
                orderValidator.validateCreditCard(orderForm.getOrder(), errors);
                orderValidator.validateBillingAddress(orderForm.getOrder(), errors);
                
break;
            
case 1:
                orderValidator.validateShippingAddress(orderForm.getOrder(), errors);
        }

        errors.setNestedPath(
"");
    }
进入我的顶置文章列表>>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值