List of usage examples for org.apache.commons.validator Field setKey
public void setKey(String key)
From source file:jp.terasoluna.fw.validation.springmodules.SpringValidationErrorsTest.java
/** * testAddErrors01() <br>//from w w w . j ava 2 s .c om * <br> * () <br> * C <br> * <br> * () bean:Object<br> * () field:Field<br> * field.getKey()="key"<br> * field.getMsg("name")="messageKey"<br> * field.getArg("name", 0)="arg0"<br> * field.getArg("name", 1)="arg1"<br> * field.getArg("name", 2)="arg2"<br> * field.getArg("name", 3)="arg3"<br> * () va:ValidationAction<br> * va.getName()="name"<br> * <br> * () rejectValue():??????<br> * fieldCode="key"<br> * errorCode="messageKey"<br> * args={<br> * MessageSourceResolvable{<br> * codes[0]={"arg0"}, arguments=null, defaultMessage="arg0"}, <br> * MessageSourceResolvable{<br> * codes[1]={"arg1"}, arguments=null, defaultMessage="arg1"}, <br> * MessageSourceResolvable{<br> * codes[2]={"arg2"}, arguments=null, defaultMessage="arg2"}, <br> * MessageSourceResolvable{<br> * codes[3]={"arg3"}, arguments=null, defaultMessage="arg3"}, <br> * }<br> * <br> * ?not null?? <br> * @throws Exception ????? */ @Test public void testAddErrors01() throws Exception { // ?? // bean Object bean = new Object(); // field Field field = new Field(); // field.getKey() : "key" field.setKey("key"); // field.getMsg("name")?errorCode???? FastHashMap hMsgs = new FastHashMap(); Msg msg = new Msg(); msg.setKey("messageKey"); hMsgs.put("name", msg); ReflectionTestUtils.setField(field, "hMsgs", hMsgs); // Object[] args???? @SuppressWarnings("rawtypes") Map[] args = new HashMap[4]; // args[0] Arg arg = new Arg(); arg.setKey("arg0"); Map<String, Arg> hMap01 = new HashMap<String, Arg>(); hMap01.put("name", arg); args[0] = hMap01; // args[1] arg = new Arg(); arg.setKey("arg1"); Map<String, Arg> hMap02 = new HashMap<String, Arg>(); hMap02.put("name", arg); args[1] = hMap02; // args[2] arg = new Arg(); arg.setKey("arg2"); Map<String, Arg> hMap03 = new HashMap<String, Arg>(); hMap03.put("name", arg); args[2] = hMap03; // args[3] arg = new Arg(); arg.setKey("arg3"); Map<String, Arg> hMap04 = new HashMap<String, Arg>(); hMap04.put("name", arg); args[3] = hMap04; ReflectionTestUtils.setField(field, "args", args); // va ValidatorAction va = new ValidatorAction(); // va.getName : "name" va.setName("name"); // SpringValidationErrors? SpringValidationErrors validation = new SpringValidationErrors(); // Errors? : ErrorsImpl01 - rejectValue??? ErrorsImpl01 errors = new ErrorsImpl01(); ReflectionTestUtils.setField(validation, "errors", errors); // validation.addError(bean, field, va); // ErrorsImpl01 assertErrors = (ErrorsImpl01) ReflectionTestUtils.getField(validation, "errors"); // rejectValue? assertTrue(assertErrors.isRejectValue); // field? assertEquals("key", assertErrors.field); // errorCode? assertEquals("messageKey", assertErrors.errorCode); // assertSame(args, assertErrors.errorArgs); // errorArgs? Object[] objs = assertErrors.errorArgs; MessageSourceResolvable msr = null; for (int i = 0; i < objs.length; i++) { msr = (MessageSourceResolvable) objs[i]; String[] strs = msr.getCodes(); // codes[0] : "arg" + i assertEquals("arg" + i, strs[0]); // arguments : null assertNull(msr.getArguments()); // defaultMessage : "arg" + i assertEquals("arg" + i, msr.getDefaultMessage()); } // defaultMessage? assertEquals("messageKey", assertErrors.defaultMessage); }
From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java
/** * z?ERNV^tB?[hlSvf`FbN?B//from w w w . j a v a 2s . c o m * <p> * z?ERNV^tH?[vf??A? CfbNX? <code>ActionMessage</code>?B * ?sTu?\bh?^?A???A?\bh vKv?B * Fieldproperty?JXPathIndexedBeanWrapperImpldl?]?A * lXgv?peB?\?B * </p> * * @param bean * ??IuWFNg * @param va * Strutsp<code>ValidatorAction</code> * @param field * tB?[hIuWFNg * @param errors * ANVG?[ * @param validator * ValidatorCX^X * @param request * HTTPNGXg * @return vfl? <code>true</code> */ public static boolean validateArraysIndex(@SuppressWarnings("unused") Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request) { // ?? int methodArgCount = 6; // z?ERNV???ifalsep???Afalse?j boolean totalResult = true; try { // RXgN^?NXp^?[ Class[] paramClass = getParamClass(va); if (paramClass == null) { log.error("Can not get class pattern."); return true; } // paramClassvf?=0?AG?[?O?o?Atruep if (paramClass.length == 0) { log.error("Class pattern length is zero."); return true; } // evf??s?\bh Method method = getMethod(va, paramClass); if (method == null) { log.error("Can not get validateMethod."); return true; } // tH?[IuWFNg ActionForm form = getActionForm(request); if (form == null) { log.error("Can not get ActionForm."); return true; } // vfof?[V?[?A // O?svIuWFNg Object[] argParams = new Object[methodArgCount]; argParams[0] = form; argParams[1] = va; argParams[3] = errors; argParams[4] = validator; argParams[5] = request; IndexedBeanWrapper wrapper = new JXPathIndexedBeanWrapperImpl(form); Map<String, Object> propertyMap = wrapper.getIndexedPropertyValues(field.getKey()); int index = 0; for (String key : propertyMap.keySet()) { // CfbNXtv?peBtB?[h? Field indexedField = (Field) field.clone(); indexedField.setIndexedListProperty(null); indexedField = getArrayIndexField(indexedField, index); indexedField.setKey(key); indexedField.setProperty(key); argParams[2] = indexedField; // tB?[h // `FbN?\bh?o Object resultObj = method.invoke(FieldChecksEx.class, argParams); // ? if (!isValid(resultObj)) { totalResult = false; } index++; } } catch (IllegalArgumentException e) { log.error("", e); return true; } catch (IllegalAccessException e) { log.error("", e); return true; } catch (InvocationTargetException e) { log.error("", e); return true; } return totalResult; }
From source file:jp.terasoluna.fw.validation.FieldChecks.java
/** * ????????/*from ww w . ja v a2 s .c om*/ * ??????????errors??? * false?? * * <p>?????????? * ?????????validation.xml? * ??depends????Array??????? * depends="requiredArray" "required" ? * * @param bean ?JavaBean * @param va Validator????ValidatorAction * @param field * @param errors * @return ????????? true * @throws ValidatorException validation?????? * ???bean?null????? */ public boolean validateArraysIndex(Object bean, ValidatorAction va, Field field, ValidationErrors errors) throws ValidatorException { if (bean == null) { log.error("validation target bean is null."); throw new ValidatorException("validation target bean is null."); } @SuppressWarnings("rawtypes") Class[] paramClass = null; // ?? Method method = null; // try { paramClass = getParamClass(va); if (paramClass == null || paramClass.length == 0) { String message = "Mistake on validation rule file. " + "- Can not get argument class. " + "You'll have to check it over. "; log.error(message); throw new ValidatorException(message); } method = getMethod(va, paramClass); if (method == null) { String message = "Mistake on validation rule file. " + "- Can not get validateMethod. " + "You'll have to check it over. "; log.error(message); throw new ValidatorException(message); } } catch (RuntimeException e) { log.error(e.getMessage(), e); throw new ValidatorException(e.getMessage()); } try { // ??????????? Object[] argParams = new Object[paramClass.length]; argParams[0] = bean; argParams[1] = va; argParams[3] = errors; // ????? IndexedBeanWrapper bw = getIndexedBeanWrapper(bean); Map<String, Object> propertyMap = bw.getIndexedPropertyValues(field.getKey()); boolean isValid = true; // for (String key : propertyMap.keySet()) { // ?????????? Field indexedField = (Field) field.clone(); indexedField.setKey(key); indexedField.setProperty(key); argParams[2] = indexedField; // // ???? boolean bool = (Boolean) method.invoke(this, argParams); if (!bool) { isValid = false; } } return isValid; } catch (InvocationTargetException e) { Throwable t = e.getTargetException(); if (t instanceof ValidatorException) { throw (ValidatorException) t; } log.error(t.getMessage(), t); throw new ValidatorException(t.getMessage()); } catch (Exception e) { log.error(e.getMessage(), e); throw new ValidatorException(e.getMessage()); } }