Java Spring复选框持续失败
我有一个Spring复选框:Java Spring复选框持续失败,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我有一个Spring复选框: <spring:url value="/car/save" var="formUrl"/> <form:form action="${formUrl}" method="POST" modelAttribute="car"> <div class="form-group"> <label for="equipment">Equipment</label>
<spring:url value="/car/save" var="formUrl"/>
<form:form action="${formUrl}" method="POST" modelAttribute="car">
<div class="form-group">
<label for="equipment">Equipment</label>
<form:checkboxes path="equipment" id="equipment" items="${equipmentList}"/>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form:form>
当我第一次尝试持久化Car实体时,我得到了一个异常,因为值对于db表来说太长了。我将其更改为200个字符,但现在我得到了:
如何存储Spring复选框中的值?在JPA中存储属性集合有不同的方法。您可以告诉JPA使用分隔符(例如“|”)在VARCHAR单元格中存储字符串属性。或者,可以在汽车实体和属性(设备)实体(连接)之间创建更复杂的关联。我更喜欢后者,因为我喜欢E-R约束和向这些属性添加字段(例如描述)的灵活性。 你的“设备”应该是一组东西,或者是一个列表,如果你允许多个相同值的条目。当您从POST表单返回字符串[]时,您将遍历数组并相应地更改/填充集合(JPA字段)。您现在可能存储的是引用而不是值,这就是为什么您会返回这种胡言乱语的原因 类似问题
@RequestMapping(value="/add",method=RequestMethod.GET)
public String addCar(Model model){
List<String> equipment = new LinkedList<>(Arrays.asList(new String[]{"AC","ABS","ESP","GPS","Cabrio"}));
model.addAttribute("car",new Car());
model.addAttribute("equipmentList",equipment);
return "addCar";
}
@Entity
@Table(name="CAR")
public class Car {
@Id
@Column(name="CAR_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long carId;
@Column(name="EQUIPMENT")
private String[] equipment;
}