1.struts.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 <constant name="struts.i18n.encoding" value="UTF-8"></constant> 5 6 <package name="jsontest" namespace="/" extends="json-default"> 7 <default-action-ref name="login"></default-action-ref> 8 <action name="login" class="com.action.LoginAction"> 9 <result type="json"> 10 <param name="root">tip</param> 11 </result> 12 </action> 13 </package> 14 15 </struts>
2.User.java
1 package com.model; 2 3 public class User { 4 5 private String username; 6 private String password; 7 8 //set/get 9 }
3.LoginAction.java
1 public class LoginAction extends ActionSupport { 2 3 private User user; 4 private String tip; 5 6 public String execute() throws Exception { 7 String username=user.getUsername(); 8 String password=user.getPassword(); 9 username=URLDecoder.decode(username, "utf-8"); //中文传参处理 10 11 System.out.println("Username:"+username+" , Password:"+password); 12 13 Map<String,String> map=new HashMap<String,String>(); 14 map.put("username", username); 15 JSONObject jo=JSONObject.fromObject(map); 16 tip=jo.toString(); 17 18 System.out.println("Get Tips:"+tip); 19 20 return SUCCESS; 21 } 22 23 public User getUser() { 24 return user; 25 } 26 27 public void setUser(User user) { 28 this.user = user; 29 } 30 31 public String getTip() { 32 return tip; 33 } 34 public void setTip(String tip) { 35 this.tip = tip; 36 } 37 }
4.index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Struts2+jQuery+JSON</title> <style type="text/css"> .decorate{ /*控制文本框样式*/ border:1px solid #F00; background:url(images/text_bg.gif) repeat-x;; background-position:bottom; } </style> <script type="text/javascript" src="jquery1.7.2.js"></script> <script type="text/javascript"> $(function(){ //var username=$("#username"); //抓取对象 //var password=$("#password"); $("#validate").click(function(){ var username=$("#username").val(); //只能使用在jQuery 函数的里面 var password=$("#password").val(); if(username==""||password==""){ alert("用户名或密码不能为空!"); }else{ var url="login?user.username="+encodeURI(encodeURI(username))+ "&user.password="+encodeURI(encodeURI(password)); $.getJSON(url,null,function(data){ // convert to json object //alert(data); {"username":"guan"} var message=eval("("+data+")"); //alert(message); {object,object} $("#tip").html("欢迎您!"+message.username); }); } }); $("#username").keyup(function(){ var username=$("#username").val(); if(username==""){ $("#username").addClass("decorate"); }else{ $("#username").removeClass("decorate"); } }); $("#password").keyup(function(){ var password=$("#password").val(); if(password==""){ $("#password").addClass("decorate"); }else{ $("#password").removeClass("decorate"); } }); }); </script> </head> <body> <div id="tip" style="color:#F00; font-weight:bold; "></div> <fieldset style="600px; "> <legend>用户登录</legend> <p align="center">账号:<input type="text" name="user.username" id="username" class="decorate" /></p> <p align="center">密码:<input type="password" name="user.password" id="password" class="decorate" /></p> <p align="center"><input type="submit" id="validate" name="validate" value="确定" /></p> </fieldset> </body> </html>