Code: Select all
Messages:
Cannot invoke "org.apache.struts2.validator.ValidatorFactory.lookupRegisteredValidatorType(String)" because "this.validatorFactory" is null
File: org/apache/struts2/validator/AnnotationValidationConfigurationBuilder.java
Line number: 620
Hier sind die Dateien in meinem Projekt:
Datei 1: src/main/java/com/mydomain/struts/actions/ContactAction.java
Code: Select all
package com.mydomain.struts.actions;
import org.apache.struts2.ActionSupport;
import org.apache.struts2.interceptor.parameter.StrutsParameter;
import org.apache.struts2.validator.annotations.CustomValidator;
import org.apache.struts2.validator.annotations.EmailValidator;
import org.apache.struts2.validator.annotations.RequiredStringValidator;
import org.apache.struts2.validator.annotations.StringLengthFieldValidator;
public class ContactAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name, message, email, securityCode;
public String getName() {
return name;
}
@RequiredStringValidator(message = "Name is required.")
@StringLengthFieldValidator(
minLength = "5",
maxLength = "40",
message = "Your name must be from 5 to 40 characters."
)
@StrutsParameter()
public void setName(String name) {
this.name = name;
}
public String getMessage() {
return message;
}
@RequiredStringValidator(message = "Message is required.")
@StringLengthFieldValidator(
minLength = "10",
maxLength = "255",
message = "The message must be from 10 to 255 characters."
)
@StrutsParameter()
public void setMessage(String message) {
this.message = message;
}
public String getEmail() {
return email;
}
@RequiredStringValidator(message = "Email address is required.")
@EmailValidator(
message = "The email address you entered is not valid."
)
@StrutsParameter()
public void setEmail(String email) {
this.email = email;
}
public String getSecurityCode() {
return securityCode;
}
@RequiredStringValidator(message = "Security code is required.")
@CustomValidator(type = "securitycodevalidator")
@StrutsParameter()
public void setSecurityCode(String securityCode) {
this.securityCode = securityCode;
}
@Override
public String execute() {
return SUCCESS;
}
}
Code: Select all
package com.mydomain.struts.validator;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.ValidationException;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.validator.validators.FieldValidatorSupport;
public class SecurityCodeValidator extends FieldValidatorSupport {
...
@Override
public void validate(Object o) throws ValidationException {
boolean isSecurityCodeCorrect = validateSecurityCode(...);
if (! isSecurityCodeCorrect) {
addFieldError(getFieldName(), o);
}
}
}
Code: Select all
Code: Select all
Contact Form
Security code:
....