首先抽取用户名回显的ajax代码到user.js文件中
如下:
$(function(){
$.ajax({
url:path+"/user/getUser.do",
type:"post",
dataType:"text",
success:function(responseText){
alert(responseTex);
var jsonObj = $.parseJSON(responseText);
if(jsonObj.user != null){
$("#login").html(jsonObj.user.username);
}
},
error:function(){
alert("系統錯誤");
}
});
});
后台接收代码:
@RequestMapping("/getUser.do")
public void getUser(HttpSession session, HttpServletResponse response) {
User user = (User) session.getAttribute("user");
JSONObject jo = new JSONObject();
// 將普通字符串使用json對象包裝一下
jo.accumulate("user", user);
// 將json對象使用字符串輸出
/*
* {userList:
* {username:xulifei,password:123},
* {username:xulijiang,password:123346}
* }
*
*/
String result = jo.toString();
ECPSUtils eu = new ECPSUtils();
eu.printJSON(result, response);
}
将result和处理乱码的代码抽取出来放在Utils中
public class Utils {
public void printJSON(String jsonString,HttpServletResponse response){
response.setContentType("text/html;charset=UTF-8");
try {
response.getWriter().write(jsonString);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
前台引入js文件
<script type="text/javascript">var path = "${path}";</script>
<script src="${path }/js/user.js" ></script>
这边注意了${path}只能在jsp中使用,所以在user.js文件中无法使用${path},我们得在这里定义一个全局变量,注意得放在导入js/user.js文件之前,然后
在user.js文件中使用path+拼接。