標籤:indicator print ace play tor java java代碼 fail 內容
本人剛開始接觸springmvc,項目搭建參照https://my.oschina.net/gaussik/blog/385697。在用IDEA寫登入註冊的時候,想通過ajax方式提交資料到後台,然後遇到如題所述的亂碼問題,然後度娘了好多,終於解決了。廢話不多說,直接上代碼。
首先是登入頁面login.jsp
1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" language="java" %> 9 <html>10 <head>11 <title>index</title>12 <script type="text/javascript" src="/js/jquery.min.js"></script>13 <script type="text/javascript">14 function login() {15 var name=$("#id1").val();16 var pwd=$("#id2").val();17 $.ajax({18 url:‘/login‘,19 type:‘post‘,20 contentType:‘application/json‘,21 data:JSON.stringify({‘username‘:name,‘password‘:pwd}),22 dataType:‘json‘,23 async:false,24 success:function (msg) {25 // alert("頁面內容改變");26 // $("#p").text(msg.msg);27 window.location.href="success.jsp?id="+Math.random();28 },29 error:function () {30 alert("failure");31 }32 });33 }34 </script>35 </head>36 <body>37 <form>38 username:<input id="id1" type="text" name="username"/><br>39 password:<input id="id2" type="password" name="password"/><br>40 <input id="id3" type="button" value="登入" onclick="login()"/><br>41 <%--<p id="p">點擊登入之後我會改變</p>--%>42 </form>43 </body>44 </html>
View Code
然後是後台Java代碼
1 package controller; 2 3 import org.json.JSONException; 4 import org.json.JSONObject; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.ui.Model; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.ResponseBody; 9 10 @Controller11 public class MainController {12 @ResponseBody13 /*14 注意了,就是這兒。我之前是這麼寫的。修改之後記得重啟伺服器。15 @RequestMapping("/login")16 */17 @RequestMapping(value = "/login", produces = {"text/html;charset=UTF-8;"})18 public String hello(Model model) {19 JSONObject jsonObject = new JSONObject();20 try {21 jsonObject.put("msg","中文亂碼");22 } catch (JSONException e) {23 e.printStackTrace();24 }25 return jsonObject.toString();26 // return "success";27 }28 }
View Code
修改之後記得重啟伺服器
修改之後記得重啟伺服器
修改之後記得重啟伺服器
重要的事說三遍,修改的地方就加上
produces = {"text/html;charset=UTF-8;"}
這幾個字,但是沒有重啟伺服器,搞了四個小時。
springmvc,通過ajax方式提交頁面資料,後台返回json資料中文資訊亂碼