我试过以下来源。但发生错误'对象'验证失败
由此链接引用(http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/)
我想如何形成数据(输入值)发送到模型的控制器' Shop'没有任何错误。
我认为无与伦比的模特' Shop'和HTML表单数据。无法弄清楚解决方案。
如何修复'标记'输入名称?
public class Tag { private Long id; private String name; private Date regDate = new Date(); }
public class Shop { private Long id; private String name; private String url; private String featureImagePath; private List<Tag> tag = new ArrayList<>(); private ShopStatus status = ShopStatus.SHOW; private Date expireDate; private Date updateDate; private Date regDate; }
Controller
@RequestMapping(value = "/edit/update", method = RequestMethod.POST) public String update(@ModelAttribute Shop shop) { if (shop.getId() == null) { shopService.createShop(shop); } return "redirect:/"; }
HTML/Thymeleaf
<form name="editor" method="post" action="/edit/update"> <fieldset> <input name='name' th:value='${data.name}'/> <input name='tag[0].id'/><input name='tag[0].name'/> </fieldset> </form>
发生了这个问题然后提交表单&#39;编辑&#39;在浏览器上。
此应用程序没有/ error的显式映射,因此您将此视为后备 出现意外错误(type = Bad Request,status = 400)。 对象=&#39; shop&#39;验证失败。错误计数:1
答案 0 :(得分:2)
我的来源没有问题。又发生了另一面
实际上HTML方面有'expireDate'输入。但是发送到输入的控制器 NULL值 (模型'Shop'没有定义默认值)。
这是我的错误。
另外,如果按照控制器源的下方,我们可以使用“FORM”而不使用'th:object'。
控制器
class Splash extends Component {
static navigationOptions = {
title: 'Splash', //header:null <= if you want to hide the header
};
render() {
const { navigate } = this.props.navigation;
return (
<View>
<Text>Hello, This is splash</Text>
<Button
onPress={() => navigate('Home')}
title="Go Home"
/>
</View>
);
}
}