|
|
要加的struts包有:
commons-beanutils-1.7.0.jar
commons-chain-1.2.jar
commons-collections-3.2.jar
commons-digester-2.0.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-validator-1.3.1.jar
ezmorph-1.0.3.jar (不这个会去一非常怪错误。不相信你可以试试) 我认为应该无法实现java对象与json对象之间转化.
freemarker-2.3.15.jar
json-lib-2.1.jar
ognl-2.7.3.jar
struts2-json-plugin-2.1.8.1.jar
xwork-core-2.1.6.jar
struts2-core-2.1.8.1.jar
其它具体 的代码;我是看了。http://www.iteye.com/topic/576513。他是原码而写的。基本一样了。
web.xml
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
strust.xml
<package name="ajax" extends="json-default"><action name="ajaxLogin" class="org.test.action.AjaxLoginAction"><!-- 返回类型为json 在json-default中定义 --><result type="json"><!-- root的值对应要返回的值的属性 --><!-- 这里的result值即是 对应action中的 result --><param name="root">result</param></result></action></package>
action代码:
private String result;// struts的属性驱动模式,自动填充页面的属性到这里private String loginName;private String password;public String getResult() {return result;}public void setResult(String result) {this.result = result;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String execute() {try{System.out.println("------------");// 用一个Map做例子Map<String, String> map = new HashMap<String, String>(); System.out.println(this.loginName);// 为map添加一条数据,记录一下页面传过来loginNamemap.put("name", this.loginName);map.put("password",this.password);// 将要返回的map对象进行json处理JSONObject jo = JSONObject.fromObject(map);System.out.println("*********");// 调用json对象的toString方法转换为字符串然后赋值给resultthis.result = jo.toString();// 可以测试一下resultSystem.out.println(this.result);}catch(Exception e){System.out.println(e);}return SUCCESS;}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="js/jquery-1.3.2.min.js"></script><script type="text/javascript">$(document).ready( function() {//使用 Ajax 的方式 判断登录$("#btn_login").click( function() {var url = 'ajaxLogin.action';//获取表单值,并以json的数据形式保存到params中var params = {loginName:$("#loginName").val(),password:$("#password").val()//上行结尾决对不加逗号(,)。如果加了在IE6下就不能运行实现了。}alert(params.loginName);//使用$.post方式$.post(url,//服务器要接受的urlparams,//传递的参数function cbf(data){//服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据//alert(data);var member = eval("("+data+")");//包数据解析为json 格式 $('#result').html("欢迎您: "+member.name+"<br>您的密码是:"+member.password);}, 'json'//数据传递的类型 json);});});</script></head><body><center><table><tr><td><span>用户名:</span></td><td><input type="text" id="loginName" name="loginName"></td></tr><tr><td><span>密码:</span></td><td><input type="password" name="password" id="password"></td></tr><tr><td colspan="2"><input type="button" id="btn_login" value="Login" /></td></tr></table><p>这里显示ajax信息:<br /><span id="result"></span></p></center></body></html>
源码: |
|