我必须从用户那里获取月份(投递箱),年份(投递箱)和文本,然后将其打包为“ Permissions”类对象,然后发送给服务器。

<div id="Setpermissions" class="modal">

    <div class="modal-content animate" >
        <div class="imgcontainer">
            <span onclick="document.getElementById('Setpermissions').style.display='none'" class="close" title="Close Modal">&times;</span>
        </div>

        <form id="my-form" action = "Permissions" method="post">

            <select name="mon" multiple="multiple" size="10">
                <%
                    for(i=1;i<13;i++) {
                        out.println("<option value = " + i + "> " + Month.of(i) + "<option>");
                    }
                %>

            </select>

            <select name="year" multiple="multiple" size="10">
                <%
                    int year = Integer.parseInt(Year.now().toString());
                    for(i=1;i<13;i++) {
                        out.println("<option value = " + year + "> " + year + "<option>");
                        year=year-1;
                    }
                %>

            </select>

            <fieldset>
                <label><input id="Reason" placeholder="Reason" type="text" name="Reason"></label>
            </fieldset>
            <!-- use this for server-side processing -->

            <input type="submit" name="submitted" value="submit" />

        </form>


    </div>

</div>


这是我的servlet代码:

@RequestMapping(value = "/Permissions", method = RequestMethod.POST)
public String Permissions(@Validated Permissions per, Model model) {

    System.out.println(per.getReason());
    return "user";
}

}


权限等级:

public class Permissions {
    private int mon;
    private int year;
    private String reason;
    private String permission;

    public String getPermission() {
        return permission;
    }

    public String getReason() {
        return reason;
    }
}


但是我没有转到正确的页面(user.jsp),并且值没有到达servlet。请帮忙

最佳答案

您应该尝试的2件事:


您的后备对象(在这种情况下为“权限”)的所有字段都应同时具有Getters和Setters。这是因为,当您单击“提交”并将请求发送到后端时,Spring将为每个字段调用setX(x)方法。 (例如setYear(year))。由于您没有二传手,所以我认为这不会起作用。
您在HTML(原因)中使用大写名称,而不是确切的字段名称(原因)。我不确定这是否会影响任何东西,但可以尝试一下。

09-03 19:58