天天看點

springMVC(五)——完成Ajax功能使用Ajax接收和傳輸參數

使用Ajax接收和傳輸參數

1、Controller傳回的類型為text類型的方式.

@Controller
public class UserAnnotation {    
    @RequestMapping("info")
    @ResponseBody
    public String list(String name) {
        System.out.println(name);
        return "";
    }
    
    
}      

前台用下面的Jquery代碼調用

<script type="text/javascript">
    $.get("info",{"name":"張三"},function(data){
        alert(data);
    })
</script>      

2、 Controller傳回的類型為JSON對象的方式

  2.1、首先要導入解析的jackson包

springMVC(五)——完成Ajax功能使用Ajax接收和傳輸參數

  2.2、在響應的方法上加上@ResponseBody :把java對象轉化為json對象。

  2.3、方法的傳回值可以是對象集合字元串。

代碼如下:

@Controller
public class UserAnnotation {
    
    @RequestMapping("info")
    @ResponseBody     //把Java對象轉化為json對象,需要使用jackson的jar包
   public User list() {
        User user = new User("張三",18)
        return user;
    }    
}      

 前台用下面的Jquery代碼調用

<script type="text/javascript">
    $.get("info",function(data){
        alert(data.uname+"   "+data.age);
    })
</script>      

 ajax傳回的為字元串,出現亂碼解決方法

出現亂碼的原因是,可以從下圖中看出,源碼中設定了編碼格式為ISO-8859-1

springMVC(五)——完成Ajax功能使用Ajax接收和傳輸參數
springMVC(五)——完成Ajax功能使用Ajax接收和傳輸參數

解決方法

第一種

在springmvc的配置檔案配置如下代碼:

springMVC(五)——完成Ajax功能使用Ajax接收和傳輸參數
<!--開啟注解驅動AnnotationHandlerMapping  -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg index="0" value="utf-8"></constructor-arg>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>      

第二種

在@RequestMapping中加入編碼設定,如下

@RequestMapping(value="info" ,produces="text/html;charset=UTF-8")      

轉載于:https://www.cnblogs.com/zjc364259451/p/11456438.html