【问题标题】:Spring MockMvc Passing Nested Form ParametersSpring MockMvc 传递嵌套表单参数
【发布时间】:2014-04-14 00:53:42
【问题描述】:
我有以下表格
public class MyForm {
private Account account;
}
public class Account {
private String firstName;
}
如何传递 firstName 参数?
(下面的方法不行)
mockMvc.perform(post("/xyz")
.param("account.firstName", "John"))
.andExpect(model().hasErrors())
.andExpect(view().name("/xyz"))
.andExpect(status().isOk())
【问题讨论】:
标签:
spring
spring-test
spring-test-mvc
【解决方案1】:
最后我解决了这个问题。由于我使用的是独立设置,因此我必须定义验证器和消息源。
void setupTest() {
MockitoAnnotations.initMocks(this)
this.mockMvc = MockMvcBuilders.standaloneSetup(getController())
.setValidator(getValidator())
.alwaysDo(MockMvcResultHandlers.print())
.build()
}
private MessageSource getMessageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setUseCodeAsDefaultMessage(true);
return messageSource;
}
private LocalValidatorFactoryBean getValidator() {
def validator = new LocalValidatorFactoryBean()
validator.setValidationMessageSource(getMessageSource());
return validator;
}