Wie lege ich zwei Variablen im Stapel fest und rufe zwei Werte im Validator ab?Java

Java-Forum
Guest
 Wie lege ich zwei Variablen im Stapel fest und rufe zwei Werte im Validator ab?

Post by Guest »

strutsvalidatorHelper.dovalidation (Stack, ValidatedField, verglichen Problem beim Abziehen von Struts2 zur Validierung:
in Struts2: < /p>

Code: Select all

@Action(value = "date-to-date-data-provider", results = {@Result(type = "json", params = {"root", "gridModel"})})
@Validations(customValidators = {
@CustomValidator(type = "DateValidator", fieldName = "fromDate", shortCircuit = true),
@CustomValidator(type = "DateValidator", fieldName = "toDate", shortCircuit = true),
@CustomValidator(type = "DateNotInFutureValidator", fieldName = "fromDate"),
@CustomValidator(type = "DateNotInFutureValidator", fieldName = "toDate"),
@CustomValidator(type = "CompareDatesValidator", message = "validate.date.jalali.same.or.before", parameters = {
@ValidationParameter(name = "fromDateParam", value = "${fromDate}"),
@ValidationParameter(name = "toDateParam", value = "${toDate}")})})
@CTLog
public String dataProvider() throws ClientException {

if (StringUtils.isEmpty(getSelectedAccountNumber())) {
return SUCCESS;
}
// ...
return SUCCESS;
}

// CompareDatesValidator class
public class CompareDatesValidator extends BaseValidator {

private static final Logger LOGGER = LoggerFactory.getLogger(CompareDatesValidator.class);

String fromDateParam;
String toDateParam;

@Override
public void doValidate(Object object) throws ValidationException {
String fromDate = (String) parse(fromDateParam, String.class);
String toDate = (String) parse(toDateParam, String.class);

// Compare dates...
}
}
Ohne Struts2:
public void doValidation(ValueStack stack, String fieldName, Class validatorClass, Object object) throws ClientException {

BaseValidator validator;
try {
Constructor constructor = validatorClass.getDeclaredConstructor(); // Get the default constructor
validator = (BaseValidator) constructor.newInstance(); // Create a new instance
validator.setValidatorContext(new DelegatingValidatorContext(object, ActionContext.getContext().getInstance(TextProviderFactory.class)));
beanFactory.autowireBean(validator);
validator.setValueStack(stack);
validator.setFieldName(fieldName);
validator.validate(object);
} catch (ValidationException e1) {
LOG.error("ValidationException {}", validatorClass, e1);
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
throw new ClientException(new SabaMessagesJB().System_Error, e);
}
}
< /code>
Ich kann im Stapel nicht zwei Werte lesen. Irgendwelche Vorschläge, wie man damit umgeht?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post