我在jsp页面上有这样的表格:
<form:select class="form-control" path="mark" >
<c:forEach begin="1" end="10" var="i" >
<option value="${i}">${i}</option>
</c:forEach>
</form:select>
我想将选定的值绑定到object中的字段:
@Entity
public class Feedback {
private Integer mark;
// getters, setters...
}
现在,我有异常TypeMismatch:无法将“String”转换为“Integer”。
如何从&lt;中保存实体整数值?选择&GT;
答案 0 :(得分:1)
您获得了 TypeMismatch异常,因为您尝试将String
(请求参数具有字符串值)绑定到Integer
。
您只需解析其值以获取int,请使用Integer.parseInt()
:
Feedback feedback = new Feedback();
if(request.getParameter("radios") != null) {
feedback.setMark(Integer.parseInt(request.getParameter("radios")));
}
并将name="radios"
添加到您的select
:
<form:select class="form-control" name="radios" path="mark" >
<c:forEach begin="1" end="10" var="i" >
<option value="${i}">${i}</option>
</c:forEach>
</form:select>
答案 1 :(得分:0)
所有请求参数都是String形式,因此,我会要求您将变量从Integer更改为String,然后在您要处理的逻辑之前将其转换为Integer。
答案 2 :(得分:0)
这种绑定对我来说非常适合。为了更加干净,您可以使用bean in-between进行绑定,然后在保存之前将String转换为基元。