Я пытаюсь проверить мой пользовательский ввод с помощью xmls, как указано в этом умном руководстве: https://struts.apache.org/getting-started/form-validation-using-xml.html
К сожалению, пока это не работает. Буду рад, если кто-нибудь сможет мне помочь. Я пытаюсь добавить проверку в мой CreateSubjectAction.class, который выглядит как минимум так:
public class CreateSubjectAction extends ActionSupport {
private Map<Long, CourseOfStudies> courseOfStudiesMap;
private CourseOfStudiesService courseOfStudiesService;
private SubjectService subjectService;
private String subjectDescription;
private String[] courseOfStudiesSelected;
public String display() {
initialise();
return NONE;
}
private void initialise() {
courseOfStudiesMap = new HashMap<>();
List<EntityObject> courseOfStudiesList = courseOfStudiesService.listEntities(new CourseOfStudies());
for (EntityObject courseOfStudies : courseOfStudiesList) {
CourseOfStudies course = (CourseOfStudies) courseOfStudies;
courseOfStudiesMap.put(course.getId(), course);
}
}
@Override
public String execute() throws Exception {
initialise();
Subject subjectNew = new Subject();
subjectNew.setSubjectDescription(subjectDescription);
List<CourseOfStudies> courseOfStudies = new ArrayList<>();
for (String co : courseOfStudiesSelected) {
CourseOfStudies studyCourse = courseOfStudiesMap.get(Long.parseLong(co));
courseOfStudies.add(studyCourse);
Тогда я получил свой CreateSubjectAction-validate.xml:
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.dtd">
<validators>
<validator type="requiredstring">
<param name="fieldName">subjectDescription</param>
<message>Blaah</message>
</validator>
</validators>
И, наконец, JSP для CreateSubjectForm:
<%@ page contentType="text/html;charset=UTF-8" %>
<div id="formBox">
<h2><s:text name="menu.addsubject"/></h2>
<hr/>
<s:form action="saveNewCourse" validate="true">
<s:textfield key="subject.description" name="subjectDescription" requiredLabel="true" cssClass="formInputField"
value="%{subject.subjectDescription}"/>
<s:checkboxlist list="courseOfStudiesMap" key="subject.courseOfStudies" requiredLabel="true" name="courseOfStudiesSelected" value="defaultCourseOfStudies"/>
<div id="formRow">
<s:submit key="button.save" theme="simple" cssClass="formButton"/>
<s:submit key="button.cancel" action="subjectList" onclick="confirm('sicher?')" theme="simple"
cssClass="formButton"/>
</div>
</s:form>
</div>
Struts.xml для этого действия записывается так:
<action name="createSubject"
class="de.nordakademie.iaa.studentmanagement.action.subjectActions.CreateSubjectAction"
method="display">
<result name="none">subjectFormCreate</result>
</action>
Я что-то пропустил? Пожалуйста, дайте мне знать. Большое спасибо,
Ина Ли