Struts проверяет ввод пользователя с помощью xml - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь проверить мой пользовательский ввод с помощью 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>

Я что-то пропустил? Пожалуйста, дайте мне знать. Большое спасибо, Ина Ли

...