Paste #1009



  1. public class AddressValidator implements Validator {
  2.         private boolean mustValidAddress;
  3.  
  4.         public AddressValidator( boolean mustValidAddress) {
  5.             this.mustValidAddress = mustValidAddress;
  6.         }
  7.  
  8.         @Override
  9.         public boolean supports(Class<?> aClass) {
  10.             return AddressModel.class.isAssignableFrom( aClass );
  11.         }
  12.  
  13.         @Override
  14.         public void validate(Object o, Errors errors) {
  15.             if ( mustValidAddress )
  16.                 ValidationUtils.rejectIfEmptyOrWhitespace( errors, "szamlazasiCim", "notblank.szamlazasicim", "A számlázási cím kitöltése kötelező!" );
  17.  
  18.             switch ( ((AddressModel)o).getType()) {
  19.                 case 1: // Futar
  20.                     if ( mustValidAddress )
  21.                         ValidationUtils.rejectIfEmptyOrWhitespace( errors, "szallitasiCim", "notblank.courieraddr", "A szállítási cím megadása kötelező!" );
  22.                     break;
  23.                 case 2: // PPPont
  24.                     if ( ((AddressModel) o).getPppLoc() == 0 )
  25.                         errors.rejectValue( "pppLoc", "pppLoc.notnull", "Válassz Pick Pack Pontot a legördülő menüből!" );
  26.                     break;
  27.                 default:
  28.                     errors.rejectValue( "type", "type.notnull", "Válasszon szállítási módot!" );
  29.             }
  30.         }
  31.     }
  32.  
  33.     @ModelAttribute("shopuser")
  34.     public User getShopUser() {
  35.         return userService.getUser();
  36.     }
  37.  
  38.     @ModelAttribute("address")
  39.     public AddressModel getAddressModel() {
  40.         if ( userService.isLoggedin() )
  41.             return userService.getAddressModel();
  42.  
  43.         return new AddressModel();
  44.     }
  45.  
  46.     @InitBinder("address")
  47.     public void addressBinder( WebDataBinder binder ) {
  48.         binder.setValidator( new AddressValidator(false) );
  49.     }
  50.  
  51.     @ResponseBody
  52.     @RequestMapping(method = RequestMethod.POST)
  53.     public String setTransportMethod( @Valid @ModelAttribute("address")AddressModel address, BindingResult result, Model model ) {
  54.         Map<String, Object> jsonMap = new HashMap<String, Object>();
  55.         if ( result.hasErrors() ) {
  56.             jsonMap.put( "success", "false" );
  57.             List<String> errors = new ArrayList<String>();
  58.             for ( ObjectError error : result.getAllErrors() ) {
  59.                 errors.add( messageSource.getMessage( error, null ) );
  60.             }
  61.             jsonMap.put( "errors", errors );
  62.         } else {
  63.             jsonMap.put( "success", "true" );
  64.         }
  65.  
  66.         userService.setAddressModel( address );
  67.  
  68.         return new Gson().toJson( jsonMap );
  69.     }

Posted by Anonymous at 05 Oct 2012, 18:51:28 CET
Language: java