- 浏览: 95594 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
east_zyd_zhao:
刚好用到了谢谢!
FilenameFilter的使用 -
tanrui90:
学习了谢谢哦
FilenameFilter的使用 -
xmllong:
楼主写错了吧,是eclipse的插件,在MYECLIPSE里面 ...
MyEclipse安装struts2插件 -
zsu_fredlin:
GOOD 向你好好学习
FilenameFilter的使用 -
Hafeyang:
个人认为 jquery 实现的比较 '诡异',但是很精练
mi ...
窥探jQuery——面向JavaScript程序员
JSON的优点众所周知,在此不作叙述.
JSON在AJAX的应该比较的多些,下面结合一下struts2.1.6和大家分享一下
1,需要把jsonplugin-0.33.jar拷贝到Web-INF/lib目录下.
关于这个JAR包是JSON在struts2.1.6插件包.里面有我们要用到的struts-plugin.xml,关于这个JAR包,经过本人的测试和网上的搜索,得出最新的0.7版本在cglib方面存在着问题,建议大家使用0.33版本.
2,在struts2.1.6的配置文件中进行配置,就是返回的类型是json,并且要为JSON数据单独创建一个Package,继承的包不再是struts-default,而是json-default
示例代码如下:
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
<package name="json" namespace="/json" extends="json-default">
<!-- 测试Json的例子 -->
<action name="jsonTest_*" class="jsonTest" method="{1}">
<result name="jsonres" type="json"/>
</action>
</package>
<package name="json" namespace="/json" extends="json-default">
<!-- 测试Json的例子 -->
<action name="jsonTest_*" class="jsonTest" method="{1}">
<result name="jsonres" type="json"/>
</action>
</package>
3,前台页面用Ajax接收到的是JSON数据格式,
{"hashMap":{"name":"wangsh","pass":"qihuan"},"pass":"这是密码啊Password","username":"wangsh"}.
本人的前采用的是Jquery1.2.6中的Ajax Post方式异步提交的.
示例代码如下:
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><s:text name="%{getText('regsiterpagetitle')}" />
</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<SCRIPT type="text/javascript"
src="${pageContext.request.contextPath}/common/resource/jquery-1.2.6.js" mce_src="${pageContext.request.contextPath}/common/resource/jquery-1.2.6.js"></SCRIPT>
<SCRIPT type="text/javascript">
function testJosn()
{
$.post(
"${pageContext.request.contextPath}/json/jsonTest_jsontest.html",
{username:"wangsh"},
function (data)
{
window.alert(data+"=====");
eval("json="+data);
window.alert("----------"+json.username);
$("#testjson").html(data);
}
);
}
</SCRIPT>
</head>
<body>
<a
href="${pageContext.request.contextPath}/json/jsonTest_jsontest.html" mce_href="${pageContext.request.contextPath}/json/jsonTest_jsontest.html">测试Json</a>
<button name="测试JSON" id="testbut" onclick="testJosn();">
测试JSON
</button>
<div id="testjson"></div>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><s:text name="%{getText('regsiterpagetitle')}" />
</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<SCRIPT type="text/javascript"
src="${pageContext.request.contextPath}/common/resource/jquery-1.2.6.js" mce_src="${pageContext.request.contextPath}/common/resource/jquery-1.2.6.js"></SCRIPT>
<SCRIPT type="text/javascript">
function testJosn()
{
$.post(
"${pageContext.request.contextPath}/json/jsonTest_jsontest.html",
{username:"wangsh"},
function (data)
{
window.alert(data+"=====");
eval("json="+data);
window.alert("----------"+json.username);
$("#testjson").html(data);
}
);
}
</SCRIPT>
</head>
<body>
<a
href="${pageContext.request.contextPath}/json/jsonTest_jsontest.html" mce_href="${pageContext.request.contextPath}/json/jsonTest_jsontest.html">测试Json</a>
<button name="测试JSON" id="testbut" onclick="testJosn();">
测试JSON
</button>
<div id="testjson"></div>
</body>
</html>
可能细心的朋友已看到了:
eval("json="+data);
window.alert("----------"+json.username);
以上的代码是何义呢?
Data是Action返回的数据.
以下是Action的代码:
view plaincopy to clipboardprint?
package com.wang.struts2.action;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.opensymphony.xwork2.ActionSupport;
public class JosnTestAction extends ActionSupport
{
private Log log = LogFactory.getLog(JosnTestAction.class);
private String username;
private String pass;
private Map<String, String> hashMap = new HashMap<String, String>();
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public Map<String, String> getHashMap()
{
return hashMap;
}
public void setHashMap(Map<String, String> hashMap)
{
this.hashMap = hashMap;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}
public String jsontest() throws Exception
{
hashMap.put("name", this.getUsername());
hashMap.put("pass", "qihuan");
this.setPass("这是密码啊Password");
log.info("===========测试JSON============");
return "jsonres";
}
}
package com.wang.struts2.action;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.opensymphony.xwork2.ActionSupport;
public class JosnTestAction extends ActionSupport
{
private Log log = LogFactory.getLog(JosnTestAction.class);
private String username;
private String pass;
private Map<String, String> hashMap = new HashMap<String, String>();
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public Map<String, String> getHashMap()
{
return hashMap;
}
public void setHashMap(Map<String, String> hashMap)
{
this.hashMap = hashMap;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}
public String jsontest() throws Exception
{
hashMap.put("name", this.getUsername());
hashMap.put("pass", "qihuan");
this.setPass("这是密码啊Password");
log.info("===========测试JSON============");
return "jsonres";
}
}
也就是说服务器返加在的数据是所有的Action属性,当然要提供读写器(get和Set方法)的.
我们可以采用简单的两行代码
eval("json="+data);//将JSON转化为一个对象,并且名为joson
window.alert("----------"+json.username);//打印出Username的值
window.alert("----------"+json.hashMap.pass);//拿到的是Map中的某个值.
可以很方便的取得JSON中的任何一个属性.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/minjiaren/archive/2009/06/01/4232246.aspx
发表评论
-
Hibernate 简化继承映射
2011-05-07 09:42 1065http://www.ibm.com/developerwor ... -
eclipse怎样去掉代码中的浮动提示框
2011-01-15 13:03 2164窗口->首选项->左边java->已安装的J ... -
eclipse启动优化参数设置
2010-09-07 11:03 1458eclipse.ini设置如下参数: -vmargs ... -
去除 struts2 标签中的自动生成的布局样式
2009-11-02 21:59 1826struts2中包含了一些默认的模版文件($ {struts- ... -
MyEclipse安装struts2插件
2009-10-21 21:53 5120打开MyEclipse,在help---->softwa ... -
什么是Base64以及sun.misc.BASE64Decoder的用法
2008-11-18 11:59 7824base64 Base64是网络上最常见的用于传输8Bit字节 ... -
连接池
2008-11-14 17:44 1062package intelcom.db; import ja ... -
struts上传
2008-11-13 16:36 1100package com.jonsion.struts; i ... -
动态ActionForm
2008-11-13 16:30 962package com.jonsion.struts; ... -
jar文件夹打包和解压
2008-11-05 17:41 2624在命令行执行 打包:jar cvf youfile.jar * ... -
log4j在servlet中的配置
2008-11-03 15:56 4059(1)首先需要一个log4j-1.2.*.jar包,jar包的 ... -
JFreeChart中文使用文档
2008-08-18 11:13 2745JFreeChart目前是最好的jav ... -
用ANT工具构建应用程序
2007-09-25 15:57 13413.3.1 ANT工具简介 有没有一个好的工具来帮助人们完成 ... -
FilenameFilter的使用
2007-09-18 11:41 30235使用FilenameFilter实现图片过滤,只要.gif,. ...
相关推荐
在这个版本中,Struts引入了两个重要的插件:Convention Plugin和JSON Plugin,使得JSON支持和配置简化成为可能。接下来,我们将深入探讨这两个插件的功能和如何在实际项目中应用它们。 **Convention Plugin**: ...
Struts2.1.6-Lib: 深入理解Struts2框架核心与库文件 Struts2是一个流行的开源MVC(Model-View-Controller)框架,它为Java Web应用...在实际项目中,根据具体需求选择和配置这些库,可以进一步优化应用的性能和功能。
以下是关于Struts2.1.6版本的一些关键知识点: 1. **MVC架构**:Struts2遵循MVC设计模式,将应用分为模型、视图和控制器三个部分,使得代码结构清晰,易于维护。模型负责业务逻辑,视图负责显示结果,控制器则协调...
Struts 2.1.6支持XML和注解两种方式进行配置,使得配置更加灵活。 3. **Action**:Action是业务逻辑的载体,负责处理用户请求并返回结果。在Struts 2中,Action类可以是任何实现了Action接口或者继承自...
总的来说,Struts2.1.6提供了一套完善的Java Web开发解决方案,它的灵活性和强大的功能使其在众多Web框架中占有一席之地。然而,随着技术的发展,Struts2后续的版本已经修复了大量安全漏洞,因此在新的项目中,可能...
5. **日志和配置**: - `log4j.jar`:Log4j日志框架,用于记录应用运行过程中的信息,帮助调试和监控。 - `struts2-config-browser-plugin.jar`:配置浏览器插件,用于可视化查看和编辑Struts2的配置信息。 以上...
总之,Struts2.1.6版本是一个简洁但功能强大的Web开发框架,它通过灵活的配置和强大的插件体系,为开发者提供了高效、便捷的Java Web应用开发工具。在实际项目中,开发者可以根据需求选择合适的配置方式和扩展插件,...
在实际开发中,使用Struts2.1.6时,开发者需要理解以下关键概念和机制: - **Action类**:这是业务逻辑的载体,每个Action类对应一个用户请求,处理完业务逻辑后返回一个结果。 - **结果类型**:定义了Action执行后...
Struts2.1.6-all.zip 是一个包含Struts2框架版本2.1.6所有库文件的压缩包,主要用于Java Web开发。Struts2是一个开源的MVC(Model-View-Controller)框架,它继承了经典的Struts1框架,并在功能、性能和灵活性上进行...
在使用Struts 2.1.6时,需要了解其配置文件(struts.xml或struts-default.xml),Action类的设计,以及结果类型和拦截器的使用。此外,Struts 2的注解功能和约定优于配置(Convention over Configuration)原则也是...
在Struts2.1.6中,这通常通过`struts.xml`配置文件来实现。 3. **Interceptor**:拦截器是Struts2中的一个重要概念,它们在Action执行前后执行一些预处理或后处理任务,如日志记录、权限验证等。开发者可以自定义...
使用Struts2.1.6时,开发者需要根据项目需求选择合适的jar包和插件,并结合Struts2的配置文件(通常为struts.xml)进行应用的搭建和定制。此外,Struts2的安全性也是需要注意的一点,比如它曾出现过一个著名的远程...
通过深入研究Struts2.1.6的源代码,开发者可以学习到如何设计和实现一个高效、可扩展的MVC框架,理解其设计模式,如工厂模式、装饰者模式、责任链模式等,并能更好地利用框架提供的功能,提高开发效率。同时,对源...
- **拦截器**:Struts 2中的拦截器是实现业务逻辑和控制逻辑分离的重要机制,可以进行权限验证、日志记录、事务管理等操作。 - **Action与结果**:Action是业务逻辑的载体,处理用户请求并返回结果。结果则定义了...
在本文中,我们将深入探讨Struts2.1.6的关键特性、应用场景以及如何配置和使用这个版本。 首先,Struts2的核心特性包括: 1. **Action与Result**:Action是处理用户请求的业务逻辑组件,而Result则是Action执行后...
在这个特定的压缩包"struts2.1.6-7jar"中,包含了七个关键的JAR文件,这些文件是运行基于Struts2.1.6的Web应用所必需的。下面将详细介绍这七个JAR文件及其在Struts2框架中的作用。 1. **struts2-core.jar**:这是...
另外三大框架的添加顺序也需要注意下,我的添加顺序是 struts2.1.6、spring2.0、hibernate3.2 spring版本差异(包方面)没有研究过,大致雷同,也应该保持版本一致,即在同一个稳定发行包中下载的包。 以下包后面跟...
Struts2.1.6是Apache软件基金会的开源框架Struts2的一个版本,它基于Model-View-Controller(MVC)设计模式,主要用于构建Java Web应用程序。这个版本的发布为开发者提供了一系列示例应用,帮助他们更好地理解和学习...