Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC3:定义自己的数据类型绑定_Java_Spring Mvc - Fatal编程技术网

Java SpringMVC3:定义自己的数据类型绑定

Java SpringMVC3:定义自己的数据类型绑定,java,spring-mvc,Java,Spring Mvc,在spring3控制器中,我可以创建一个包含多个参数的动作方法,这些参数将由spring设置 @RequestMapping(value="/updateTemplate") public void doStuff(HttpServletRequest request, Locale locale) { assert request != null; assert locale != null; } 如何教Spring填充自己定义的数据类型 @RequestMapping(va

在spring3控制器中,我可以创建一个包含多个参数的动作方法,这些参数将由spring设置

@RequestMapping(value="/updateTemplate")
public void doStuff(HttpServletRequest request, Locale locale) {
  assert request != null;
  assert locale != null;    
}
如何教Spring填充自己定义的数据类型

@RequestMapping(value="/updateTemplate")
public void doStuff(HttpServletRequest request, Locale locale, MyClass myClass) {
  assert myClass != null;
}
Spring有一个名为的类,它将为您完成此任务。它将接收传入的
HttpServletRequest
的各种成员,并使用它们创建一个对象,然后将该对象传递给
控制器
方法。最好的部分是,如果将
HttpMessageConverter
添加到
ApplicationContext
(通过
annotationmethodhandleadapter
,如上所述),它将自动为您执行此操作

已经存在许多预构建的实现,您可以在上面链接的
HttpMessageConverter
页面上找到许多预构建的实现。可能最有用的是,用于将JSONObject从请求体映射到JavaBean,以及用于将XML从请求体映射到JavaBean

并将其注册到springmvc:

<mvc:annotation-driven >
    <mvc:argument-resolvers>
       <bean class="com.xxx.MyClassWebArgumentResolver" />
    </mvc:argument-resolvers>
</mvc:annotation-driven>

这并不完全是你想要的,但朝着你可能想要的方向迈出的一步似乎不是我要搜索的东西,WebArgumentResolver是正确的提示
<mvc:annotation-driven >
    <mvc:argument-resolvers>
       <bean class="com.xxx.MyClassWebArgumentResolver" />
    </mvc:argument-resolvers>
</mvc:annotation-driven>
@RequestMapping(value="/updateTemplate")
public void doStuff(HttpServletRequest request, Locale locale, MyClass myClass) {
    assert myClass != null;
}