论坛首页 →
Java企业应用论坛 →
Spring3 MVC Restful 多请求类型(json,xml,k-v),多视图配置(Json,Xml,JSP,Freemarker,Volacity等)
精华帖 (2) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-27
liuweifeng 写道 请问LZ,下面这句是虾米?
<mvc:interceptors> <bean class="com.globeway.web.servlet.intercept.JsonGetInterceptor" /> </mvc:interceptors> 就是给contorller加上拦截器,跟struts2差不多,不过spring mvc只有before跟after,没有around,这点不爽 |
|
返回顶楼 | |
发表时间:2010-08-27
liguiking 写道 liuweifeng 写道 请问LZ,下面这句是虾米?
<mvc:interceptors> <bean class="com.globeway.web.servlet.intercept.JsonGetInterceptor" /> </mvc:interceptors> 就是给contorller加上拦截器,跟struts2差不多,不过spring mvc只有before跟after,没有around,这点不爽 能把你com.globeway.web.servlet.intercept.JsonGetInterceptor这个贡献出来不,大家参考下~谢了 |
|
返回顶楼 | |
发表时间:2010-08-27
yangfuchao418 写道 spring 还好。用struts2构建restful 真TMD 不方便。
struts2 restFul也不复杂,使用契约的话,免配置,注解都不用: web.xml: <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> struts.xml: <constant name="struts.convention.action.suffix" value="Controller"/> <constant name="struts.convention.action.mapAllMatches" value="true"/> <constant name="struts.convention.default.parent.package" value="rest-default"/> <constant name="struts.mapper.class" value="rest" /> <constant name="struts.convention.package.locators" value="controller"/> <package name="demo" extends="rest-default" namespace="/demo"/> 需要使用到struts2-convention-plugin.jar、struts2-rest-plugin.jar这两个插件包 Controller放在**.cotroller.*下即可: public class XxxController extends ActionSupport implements ModelDriven<Object> { private String id = ""; public HttpHeaders index() { return new DefaultHttpHeaders("index") .disableCaching(); } public HttpHeaders show() { return new DefaultHttpHeaders("show"); } @Override public Object getModel() { return model; } } 在WEB-INF下建立目录:content/xxx/xxx-index.jsp,xxx-show.jsp,要支持Freemarker之流的就没有试过 如果要返回json或者xml,还要加上struts2-json-plugin.jar:/demo/1111.json /demo/1111.xml IBM developerworker上有李刚大湿雄文一篇,大家可以去观摩一二 http://www.ibm.com/developerworks/cn/java/j-lo-struts2rest/ struts restful 与 spring3 mvc 熟优熟劣,就看各自的喜好了,本挫八年抗战,历经strut1--webwork2--struts2,最终皈依Spring3 MVC,摒弃尘世间的一切恩怨 |
|
返回顶楼 | |
发表时间:2010-08-27
liuweifeng 写道 liguiking 写道 liuweifeng 写道 请问LZ,下面这句是虾米?
<mvc:interceptors> <bean class="com.globeway.web.servlet.intercept.JsonGetInterceptor" /> </mvc:interceptors> 就是给contorller加上拦截器,跟struts2差不多,不过spring mvc只有before跟after,没有around,这点不爽 能把你com.globeway.web.servlet.intercept.JsonGetInterceptor这个贡献出来不,大家参考下~谢了 这个我只是加了一个空壳而已,还没有用到,兄弟要看也无妨: public class JsonGetInterceptor extends HandlerInterceptorAdapter { private static final Logger logger = LoggerFactory.getLogger(JsonGetInterceptor.class); @Override public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { logger.debug("JsonGetInterceptor--{}",request.getParameter("RequestBody")); return true; } public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { logger.debug("request After---------",request.getParameter("RequestBody")); } } |
|
返回顶楼 | |
发表时间:2010-08-27
LZ能不能做个demo打个工程出来,小弟好学习学习。
|
|
返回顶楼 | |
发表时间:2010-08-27
最后修改:2010-08-27
再给点儿力 整个完整的样例跑跑
|
|
返回顶楼 | |
发表时间:2010-08-29
样例放出,修改了两处spring的源码。jar包请自行添加
|
|
返回顶楼 | |
发表时间:2010-08-31
liguiking 写道 样例放出,修改了两处spring的源码。jar包请自行添加
非常感谢LZ! |
|
返回顶楼 | |
发表时间:2010-08-31
最后修改:2010-08-31
如果在ModelMap里多放几个对象,输出xml的时候,只会输出第一个,还得改写MarshallingView,原来的MarshallingView写不怎么好,看源码就知道。MappingJacksonJsonView就不存在这样的问题。我的项目里我自己实现了一个MarshallingView
|
|
返回顶楼 | |
发表时间:2010-09-19
附件竟然下载不了,5555
我竟然不用ContentNegotiatingViewResolver,只是配置了ViewResolver的order属性就可以了如:<property name="order" value="0"/> |
|
返回顶楼 | |