我可以将来自<option>的值绑定到JSP中的整数作为对象字段吗?

时间:2015-08-07 12:56:28

标签: java jsp

我在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;

3 个答案:

答案 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转换为基元。