我必须从用户那里获取月份(投递箱),年份(投递箱)和文本,然后将其打包为“ 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">×</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(原因)中使用大写名称,而不是确切的字段名称(原因)。我不确定这是否会影响任何东西,但可以尝试一下。