Spring MVC有一个参数解析器构造,可直接支持您的请求。用 @RequestMapping
注释的每个处理程序方法都将进行参数解析,其中框架将扫描处理程序参数,检查类型并实例化适当的对象。这就是注入请求,模型和许多其他类型的机制,仅通过在处理程序的方法签名中声明对象即可。
您可以编写自定义参数解析程序,以解析自定义类型并在方法中可用。程序简单三步过程
在您的情况下,创建一个POJO类 MyRequestFoo
制作解析器,例如
public class MyRequestFooResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.getParameterType().equals(MyRequestFoo.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { return new MyRequestFoo(); }}
3.注册解析器
<mvc:annotation-driven> <mvc:argument-resolvers> <bean ></bean> </mvc:argument-resolvers> </mvc:annotation-driven>
或在Java配置中
@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void addArgumentResolvers(List< Handlermethodargumentresolver > argumentResolvers) { MyRequestFooResolver myRequestFooResolver = new MyRequestFooResolver (); argumentResolvers.add(myRequestFooResolver ); }}
比仅通过将类型添加为处理程序方法参数来使用它
@RequestMapping("/search")public SomeReturnObject search(MyRequestFoo foo) { // ...}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)