关闭

Spring3 MVC 笔记(二) —json+rest优化

310人阅读 评论(0) 收藏 举报
分类:
接上次的 spring mvc 注解的一些详细信息! 
                         其实也是一些个人的学习笔记  呵呵! 
http://7454103.iteye.com/blog/716975 


有了上面的基础! 
        一起来研究些其他的东西! 

前端时间写了个  struts2 集成 json 的帖子!回应还不错! 呵呵!能帮助大家 或者一起讨论!我感觉是件很愉快的事情! 但是由于工作的原因!每个月只能发一篇帖子 呵呵!! 

<一> 
关于 spring3.03 前的版本的一个小改进 
如果spring mvc sevlet 配置的 “/” 过滤任何请求 则css ,js 等无法访问到 
解决办法:  1.0  <servlet-mapping> 
                   <servlet-name>default</servlet-name> 
                    <url-pattern>*.css</url-pattern> 
                  </servlet-mapping> 

            2.0  urlrewrite 配置下页很方便! 

            3.0  spring 3.04 后  (已测试!) 
                    <mvc:resources location="/css/" mapping="/css/**"/> 
                 <mvc:resources location="/res/" mapping="/res/**"/>

<二> 
关于spring的 annotation的 事物多说两句, 
              1.0 @Transactional 配置 只针对public 方法 其效果! 非public 方法不会报错 单无事物支持!  如果写在类上面 默认对整个类的 所以 public 方法添加事物!所以一般不这么干! 
            2.0 spring mvc 配置文件 会覆盖事物配置!无论是 annotation 或者 XML 的都不行!上次问答比赛的时候 帮个兄弟整了好久才搞定!大家别犯同样的错误哈! 解决办法 把 事物 在spring mvc配置文件

<三> 
  那就来一起看看  json 咯! 
  添加jar 包: 
          jackson-core-asl-1.5.6.jar  jackson-core-lgpl-1.5.6.jar 
         jackson-mapper-asl-1.5.6.jar  jackson-mapper-lgpl-1.5.6.jar 



在 spring MVC 那个配置文件里面增加 


    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="messageConverters">  
            <util:list id="beanList">  
                <ref bean="mappingJacksonHttpMessageConverter" />  
            </util:list>  
        </property>  
    </bean>  
  
    <bean id="mappingJacksonHttpMessageConverter"  
     class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> 

就是注册个 json 解析器! 
使用实例: 
@RequestMapping(value="view/{ids}") 
@ResponseBody 
public Map<String,GameClassEntity> findByID(@PathVariable String ids, HttpServletRequest request,HttpServletResponse response) throws Exception { 
return map; 
         } 

map 或者其他 String 上面都可以字段转换传 json 字符串了! 当然也可以接受 json 类型的参数 解析! 
页面调用: 
<script type="text/javascript">
<!--
    function  view(temp_id){
      if(typeof(temp_id)!="undefined"){
           var url="../gameController/view/"+temp_id;
           $.post(url,null,function(data){
              var ss= eval("("+data+")");
              alert(ss.gameList.game_name);
           });
        }
    }
 //-->
</script>

转载自: http://7454103.iteye.com/blog/757229

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1600次
    • 积分:26
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档