美文网首页
SpringMVC与Struts2

SpringMVC与Struts2

作者: 小笨特 | 来源:发表于2018-05-11 14:45 被阅读0次

【073 Spring MVC的工作原理】

Spring使用<conversion-service="conversionService" />后,会实例化RequestMappingHandlerMapping、RequestMappingHandlerAdapter、HandlerExceptionResolver、HttpMessageConverters等对象,其中HttpMessageConverters创建一组HttpMessageConverter,并把它们配置到RequestMappingHandlerAdapter中,负责对request和response的参数进行解析。也可以自定义转化格式并添加到conversion-service。

【074 Spring MVC可以接收的参数类型?】

①基本类型,建议使用封装类型,可以用NULL判断空值;

②POJO对象,请求为username=XXX是用User接收,请求为user.username=XXX时用封装了User类的对象UserVO接收;

③ 数组或者List或者Map,请求为users[0].username=XXX或者users[‘username’]=XXX格式,如果为form表单请求,必须作为封装的成员来使用,成员名为users;而如果以Ajax发送请求,请求的类型为application/json,则可以直接转换,用@RequestBody List users来接受。

【074扩展@PathVariable、@RequestBody和@RequestParam的区别】

①@PathVariable,用来获取请求路径URL中的动态参数,例如@RequestMapping(value= "user/login/{id}/{name}/{status}"),可以在方法参数中使用@PathVariable int id, @PathVariable String name, @PathVariable boolean status来接收;

② @RequestParam,用来处理Content-Type为application/x-www-form-urlencoded编码的内容,通过Request.getParameter()获取的String直接转换为简单类型;

③常用来处理不是application/x-www-form-urlencoded编码的内容,例如application/json,application/xml等,通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。


【076】Struts2的工作原理

Struts2是基于Filter的过滤器拦截机制,不需要实现Servlet,因此要将FilterDispatch放在过滤器链的最后一个,否则其他过滤器不会执行。

【077 Struts2和Spring MVC的区别】

① Struts2是基于过滤器的拦截,而Spring是基于Servlet的拦截;

② Struts2是基于类的拦截,传递的参数作为成员变量设置,而Spring是基于方法的拦截,传递的参数作为方法的形参注入。

【078 Struts2的参数接收方法】

①直接使用Action的属性接收,包括List和Map,需要提供get和set方法;

② 实现ModelDriver接口,实现T getModel()方法。

相关文章

网友评论

      本文标题:SpringMVC与Struts2

      本文链接:https://www.haomeiwen.com/subject/tgltdftx.html