- 浏览: 399861 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (198)
- java (28)
- J2EE (19)
- struts (33)
- sping (13)
- hibernate (18)
- mybatis (15)
- connection pool (3)
- DB (26)
- SQL (21)
- html (13)
- js (7)
- json (3)
- jquery (2)
- document (17)
- linux (15)
- C# (1)
- url (2)
- eweb4j (1)
- Turbine (1)
- 框架 (11)
- jdbcTemplate (3)
- aop (2)
- windows (2)
- ubuntu (1)
- eclipse (11)
- JPA (8)
- svn (4)
- get 传值 (2)
- mysql (5)
- oracle (2)
- hadoop (1)
- MongoDB (2)
- spring (1)
- python (1)
最新评论
-
jcbingjc:
楼主,你好,按照上面的配置,我报如下错误:Missing Pe ...
[properJavaRDP]在网页中实现远程连接 -
sucful:
折腾了半天跑不通 ,要传就搞个完整的吧
Struts2 <sx:div/>实现页面模块异步刷新 -
Kattou:
你好! 看了你写的这个分页 感觉很好, 但是不怎么会用么,请指 ...
jsp分页控件 -
我叫PSB:
地址完全用不了
eclipse中的安装 jseclipse -
1111emotion:
我的工程里还是有乱码的情况,我该改的地方都改了。
Eclipse/MyEclipse更改默认字符集 设置UTF-8
1、index.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>使用JSON插件</title> <script src="prototype-1.6.0.3.js" type="text/javascript"> </script> <script src="json2.js" type="text/javascript"> </script> <script type="text/javascript"> function gotClick() { alert('ss'); //请求的地址 var url = 'JSONExample.action'; //将favorite表单域的值转换为请求参数 var params = Form.serialize('form1'); //创建Ajax.Request对象,对应于发送请求 var myAjax = new Ajax.Request( url, { //请求方式:POST method:'post', //请求参数 parameters:params, //指定回调函数 onComplete: processResponse, //是否异步发送请求 asynchronous:true }); } function processResponse(request) { //使用JSON对象将服务器响应解析成JSON对象 var res = JSON.parse(request.responseText); //遍历JSON对象的每个属性 for(var propName in res) { $("show").innerHTML += propName + " --> " + res[propName] + "<br />"; } } </script> </head> <body> <form id="form1" name="form1" method="post"> field1:<input type="text" name="field1" id="field1"/><br /> field2:<input type="text" name="field2" id="field2"/><br /> field3:<input type="text" name="field3" id="field3"/><br /> <input type="button" value="提交" onClick="gotClick();"/> </form> <div id="show"> </div> </body> </html>
2、S<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.i18n.encoding" value="UTF-8"/> <package name="example" extends="json-default"> <action name="JSONExample" class="lee.JSONExample"> <result type="json"/> </action> <action name=""> <result>.</result> </action> </package> </struts>
3、JSONExample Action类
package lee; import java.util.HashMap; import java.util.Map; import com.opensymphony.xwork2.Action; import com.googlecode.jsonplugin.annotations.JSON; public class JSONExample { //模拟处理结果的属性 private int[] ints = {10, 20}; private Map map = new HashMap(); private String customName = "顾客"; //封装请求参数的三个属性 private String field1; private String field2; //没有setter和getter方法的字段不会被序列化 private String field3; public String execute() { map.put("name", "李刚"); return Action.SUCCESS; } //使用注释语法来改变该属性序列化后的属性名 @JSON(name="newName") public Map getMap() { return this.map; } //ints属性的getter方法 public int[] getInts() { return this.ints; } //customName属性的setter和getter方法 public void setCustomName(String customName) { this.customName = customName; } public String getCustomName() { return this.customName; } //field1属性的setter和getter方法 public void setField1(String field1) { this.field1 = field1; } public String getField1() { return this.field1; } //field2属性的setter和getter方法 public void setField2(String field2) { this.field2 = field2; } public String getField2() { return this.field2; }
}
5.如果按照3中的配置。你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了(甚至有时候返回不了结果,也不报错,后台执行了,但前台执行不到callback function),但是我们有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题,一般情况下用的最多的就是includeProperties 参数和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。
6.includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。这个参数直接返回对象的json数据,前台不需要eval转换,<param name="root">result</param>则不同,需要前台进行eval转换
如:输出person的所有属性
<result type="json">
<param name="includeProperties">person.*, person\.name</param>
</result>
7.excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties
8.输出一个JSON List列表
<action name="list" class="testAction" method="list">
<result name="success" type="json">
<param name="includeProperties">
list\[\d+\]\.Id,list\[\d+\]\.user\.userName
</param>
</result>
</action>
其中list是action中的一个List类型的属性
list\[\d+\]\.Id表示,list中存储的对象0..end的Id属性(list中存储的对象必须有Id属性)。
list\[\d+\]\.user\.userName就表示list中的对象中的user对象的userName属性
9.为什么要用includeProperties或者excludeProperties 参数:
主要是为了过滤掉接口,pojo的set、list、其他对象等不需要的数据防止循环取其他对象或找不到。如果不配置,默认是处理action中的所有属性,如果action中有接口注入,json拦截器可能找不到返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其他对象有list、set,其返回结果...有可能是死循环,无法返回
10.总结:
action中避免使用get开头的action方法,去掉action中的接口的get方法
为json类型的result配置includeProperties, excludeProperties等参数.
发表评论
-
quartz 时间配置规则
2016-05-28 02:19 0quartz 时间配置规则 格式: [秒] [分] [小时 ... -
Struts2.1.8升级到Struts2.3.15.1的时候遇到了问题
2013-08-09 10:14 2012我把原来的Struts2.1.8升级到Struts2.3. ... -
J2EE RMI搭建
2012-10-08 13:21 1730RMI接口: package com.ynitil.sinf ... -
struts2 url传值中文乱码解决方案
2012-09-21 16:21 1419HttpServletRequest request = Ac ... -
关于JAVA中URL传递中文参数,取值是乱码的解决办法
2012-07-03 14:04 1428今天遇到一个问题就是在Action当中把一条中文信息绑定在UR ... -
JSP的九个隐含对象,EL表达式中的11个隐含对象,JSP的6个基本动作
2012-07-03 09:37 1603一、page 对象 page对 ... -
java去除html格式,提取文字信息
2012-05-25 11:13 11146import java.util.regex.Matcher; ... -
使用struts2中的ognl表达式调用类方法
2012-04-19 09:35 1367struts标签中value都会被解析,如,<s:pro ... -
使用struts2中的ognl表达式调用类方法(转)
2012-04-15 16:54 1285struts标签中value都会被解析,如,<s:pro ... -
Struts2 get 传值乱码过滤器配置
2012-04-15 16:31 1375package cn.org.du.Encode; im ... -
struts2 url传值中文乱码解决方案
2012-04-15 15:51 1514HttpServletRequest request ... -
java.lang.OutOfMemoryError: Java heap space 解决方法
2012-04-09 11:12 1026java.lang.OutOfMemoryError: Jav ... -
SmartUpload 下载文件
2012-04-01 18:51 1244<%@ page contentType="t ... -
纯css的防止图片撑破页面的代码(图片自动缩放)
2012-04-01 17:06 1194<!DOCTYPE html PUBLIC " ... -
struts2 result type 介绍
2012-03-23 09:14 1166在默认时,<result>标签的type属性值是“ ... -
Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效
2012-03-08 17:43 1956问题:在Struts2中<jsp:forward pag ... -
Struts2整合Spring、JPA
2012-02-27 09:46 1919一直觉得JPA很神秘,最近抽空看了下,下面贴出刚才做的St ... -
HTMLParser抓取网页信息
2011-12-07 09:19 1942HTMLParser具有小巧,快速 ... -
HTML中,小<meta>的大作用
2011-12-01 17:50 1150meta是用来在HTML文档中模拟HTTP协议的响应头报文。 ... -
JAVA三大框架的各自作用
2011-11-25 00:04 3199一、Spring Spring是 ...
相关推荐
lib目录下的文件可能包括Struts2的核心库、JSON处理库以及可能的Ajax支持库,如jQuery或Prototype。这些库可能包括: 1. `struts2-core.jar`: Struts2的核心库,提供了Action、Interceptor、Result等核心组件。 2. ...
4. **与AJAX集成**:与jQuery、 Prototype等库配合,实现异步请求和响应,提升用户体验。 5. **自定义结果类型**:允许开发者定义自己的JSON结果类型,以满足特定需求。 **使用方法:** 在Eclipse中,这个jar包可以...
通过AJAX,前端可以异步地向服务器发送请求,获取JSON数据,然后在不刷新整个页面的情况下更新部分视图。而Struts框架则负责处理请求,调用相应的业务逻辑,并以JSON格式返回结果。这种方式提高了Web应用的响应速度...
1. **无刷新表格**:通过AJAX请求获取服务器数据,Struts 2处理请求并返回JSON数据,然后更新页面上的表格,无需整个页面刷新。 2. **表单验证**:使用Struts 2的拦截器进行服务器端验证,同时通过AJAX实时反馈...
开发者可以使用Struts2的Ajax插件,如JQuery插件,或者直接利用JavaScript库(如jQuery或 Prototype)来发送AJAX请求。在Action类中,可以定义一个特殊的方法处理AJAX请求,并返回JSON对象,然后前端JavaScript代码...
9. **AJAX支持**:通过使用S2-Plugin,Struts2可以方便地与jQuery、Prototype等JavaScript库集成,实现异步数据交换,提升用户体验。 10. **测试支持**:Struts2提供了JUnit插件,使得单元测试和集成测试变得更加...
在《struts2+ajax详解》这本书中,你将深入学习这两种技术的结合使用,包括配置、Action编写、Ajax请求的处理以及如何在Struts2中返回JSON数据等内容。通过阅读13 struts2.0 & ajax(1).pdf和14 struts2.0 & ajax(2)....
5. **Struts2拦截器**:Struts2的拦截器机制在处理Ajax请求时同样起作用,开发者可以自定义拦截器来处理请求前后的逻辑,如身份验证、数据验证等。 6. **Action和Result配置**:在struts.xml配置文件中,开发者可以...
3. **JSON响应**:Struts2支持JSON结果类型,可以直接将Action的返回值转换为JSON格式,前端通过Ajax请求获取这个JSON数据,然后动态更新DOM元素。 4. **分离视图**:利用Ajax,我们可以将视图部分分解为多个独立的...
2. **Ajax原理**:Ajax的核心是JavaScript,它通过XMLHttpRequest对象向服务器发送异步请求,获取服务器响应,然后动态更新DOM元素,实现页面局部刷新。XML虽然在名称中,但实际传输的数据可以是JSON、HTML或其他...
"工具"可能指的是开发者在整合Ajax与Struts时可能会用到的辅助库或插件,例如jQuery、Prototype等JavaScript库,或者Struts的特定扩展如Ajax(Struts2)插件。 【文件名列表】: 1. **gpl.txt** - 这个文件可能是GNU ...
2. **创建Struts Action**: 在Struts中,创建一个处理用户查重请求的Action类。该类会接收到前端发送的用户名,查询数据库中是否存在相同的用户名。 3. **配置Struts.xml**: 配置Struts的配置文件,定义一个...
2. **Struts Action响应**:在服务器端,Struts Action需要处理Ajax请求,返回JSON或XML数据,而不是跳转到新的页面。 3. **配置Action**:在`struts-config.xml`中,为Ajax请求配置特定的Action,设置返回类型为...
3. **Action的Ajax响应**:在Struts2中,Action类可以被配置为返回XML、JSON等格式的数据,这些数据可以作为Ajax请求的响应。这使得服务器端的业务逻辑可以直接返回部分页面更新所需的数据,而不是整个HTML页面。 4...
1. **Ajax基础**:首先,书中会介绍Ajax的基本原理,包括XMLHttpRequest对象、JavaScript异步请求、DOM操作以及JSON数据格式。这些都是实现Ajax功能的核心技术。 2. **Struts框架概览**:讲解Struts的工作原理,...
添加完成后,Action可以通过Struts2的JSON插件或自定义Result类型将响应封装为JSON格式,方便Prototype.js解析。 总结来说,本示例通过整合SSI、Ajax(Prototype.js)以及后端的Struts2、Spring和Ibatis框架,展示...
Ajax通过JavaScript库(如jQuery、Prototype等)来实现与服务器端的通信,通常使用XMLHttpRequest对象发送异步请求。开发者可以通过Ajax实现无刷新的用户体验,提高网页的交互性和响应速度。例如,当用户在页面上...
3. **Ajax的应用**:学习如何使用jQuery或其他库(如 Prototype 或 AngularJS)来创建Ajax请求,以及如何在服务器端处理这些请求,并返回JSON或XML数据给前端。 4. **异常处理和事务管理**:了解如何在Spring中配置...