日期:2014-05-16  浏览次数:20468 次

Spring3 MVC 笔记(二) —json+rest优化
接上次的 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>


以上是我的 只言片语! 不足的地方欢迎各位多多指点!当然也可以直接交流!
附上jar