小编Rem*_*mik的帖子

@ModelAttribute控制器spring-mvc嘲笑

我想测试一个@ModelAttribute用于其方法参数之一的控制器.

public String processSaveAction(@ModelAttribute("exampleEntity") ExampleEntity exampleEntity)
Run Code Online (Sandbox Code Playgroud)

@ModelAttribute方法getExampleEntity是使用@RequestParam:

@ModelAttribute("exampleEntity")
public ExampleEntity getExampleEntity(@RequestParam(value = "id", required = true) ExampleEntity exampleEntity) {
Run Code Online (Sandbox Code Playgroud)

我的控制器WebDataBinder用于调用工厂,该工厂根据参数"id"返回一个对象.

@Controller
public class ExampleController(){

    @Autowired private IdEditorFactory idEditorFactory;

    @InitBinder
    public void initBinder(WebDataBinder binder) {

        binder.registerCustomEditor(ExampleEntity.class, idEditorFactory.createEditor(ExampleEntity.class));
    }

    @ModelAttribute("exampleEntity")
    public ExampleEntity getExampleEntity(@RequestParam(value = "id", required = true) ExampleEntity exampleEntity) {

        //Irrelevant operations
        return exampleEntity;
    }

    @RequestMapping(method = RequestMethod.POST, params = "action=save")
    public String processSaveAction(
            @RequestParam(value = "confirmed") String exampleString,
            @ModelAttribute("exampleEntity") ExampleEntity exampleEntity, …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocking spring-mvc spring-test-mvc mockmvc

4
推荐指数
2
解决办法
1万
查看次数