java - 如何使用数组字段验证表单?
问题描述
我有一个具有@ManyToMany 关系的用户模型。我想提交一个带有 ID 数组的表单,但验证返回错误。
public class User extends Model {
@ManyToMany
private List<Stock> stocks;
public List<Stock> getStocks() {
return stocks;
}
public void setStocks(List<Long> stockIds) {
stocks = (stockIds == null) ? null : stockIds.stream().map(Stock::getById).collect(Collectors.toList());
}
}
在我的 HTML 中:
<select name="stocks[]" class="form-control" multiple>
<option value="1">Test</option>
</select>
在我的控制器中:
Form<User> form = formFactory.form(User.class).bindFromRequest();
if (form.hasErrors()) {
System.out.println(form);
}
输出给了我:
Form(of=class models.User, data={stocks[0]=1}, value=Optional[models.User@2], errors={stocks[0]=[ValidationError(stocks[0],[error.invalid],[])]})
知道为什么吗?
解决方案
推荐阅读
- angular - Leaflet-geotiff 在 Angular 6 应用程序中的使用
- java - 如何最大化服务器发送事件打开连接?
- nullpointerexception - SOAP Web 服务客户端抛出 SOAPFaultException:空指针异常
- stripe-payments - 充值卡多次
- selenium - 有没有办法在 css 选择器 selenuim 中加入条件
- javascript - 如何以角度形式构建接口
- javascript - 当有人关闭它时如何立即自动运行电子窗口应用程序?
- c# - 使用 Stripe 和 ASP.NET WebForm 的示例结帐
- c++ - 我是否也应该包含 string.h 即使它存在于头文件中?
- angular - 在 const angular 上创建泛型类型