必须的jar:

java bean:

package upload.progress.action;

public class music {
private String name;
private String singer;
private String source;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
} }

struts2.xml配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<!--
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" /> <include file="example.xml"/> <package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
--> <package name="default" namespace="/Fileupload" extends="struts-default"> <action name="practice" class="action.PracticeAction" method="practice_one">
<result type="redirect" name="success">
/js/uploadify.jsp
</result>
</action> </package>
<!-- Add packages here -->
<package name="ajax" namespace="/ajax" extends="json-default"> <action name="ajaxTest1" class="action.ajaxTest1" method="ajaxTest">
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param> </result>
</action>
<action name="json" class="upload.progress.action.jsonTest1" method="returnMessage">
<result name="success" type="json"></result>
</action>
<action name="jsonMusic" class="upload.progress.action.jsonTest1" method="returnMusic">
<result name="success" type="json"></result>
</action>
<action name="jsonMusicList" class="upload.progress.action.jsonTest1" method="returnMusicList">
<result name="success" type="json">
<param name="root">musicList</param>
</result>
</action>
</package> </struts>

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
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>My JSP 'jsonTest1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#showMessage").click(function(){ $.ajax({
type: "POST",
dataType: "json",
url: "ajax/json.action",
success: function(data){
$("#message").html("<font color='red'>"+data.message+"</font>");
}
});
}); $("#showMusic").click(function(){
$.ajax({
type : "POST",
dataType : "json",
url : "ajax/jsonMusic.action",
success : function(data){
$.each(data,function(i,item){
if(item!=null){
alert(item.name);
}
})
}
});
}); $("#showList").click(function(){
$.ajax({
type : "POST",
dataType : "json",
url : "ajax/jsonMusicList.action",
success : function(data){
$.each(data,function(i,item){
if(item!=null){
alert(item.name);
}
})
}
});
});
});
</script>
</head> <body>
<table align="center">
<tr>
<td id="showMessage">Message</td>
<td id="showMusic">showMusic</td>
<td id="showList">showList</td>
</tr> </table>
<div id="message"></div>
</body>
</html>

action:

package upload.progress.action;

import java.util.ArrayList;
import java.util.List; import org.json.JSONArray; import com.opensymphony.xwork2.ActionSupport; public class jsonTest1 extends ActionSupport {
/**
* 处理json的action
*/
private static final long serialVersionUID = -1519192049194890338L;
private String message;
private music Music;
private List<music> musicList; public String returnMessage(){
System.out.println("json invoking");
message="json 字符串";
return SUCCESS;
} public String returnMusic(){
Music =new music();
Music.setName("忘情水");
Music.setSinger("刘德华");
Music.setSource("百度");
return SUCCESS;
}
public String returnMusicList(){
musicList=new ArrayList<music>();
music Music1 =new music();
Music1.setName("忘情水1");
Music1.setSinger("刘德华1");
Music1.setSource("百度1"); music Music2 =new music();
Music2.setName("忘情水2");
Music2.setSinger("刘德华2");
Music2.setSource("百度2"); music Music3 =new music();
Music3.setName("忘情水3");
Music3.setSinger("刘德华3");
Music3.setSource("百度3");
musicList.add(Music1);
musicList.add(Music2);
musicList.add(Music3); return SUCCESS;
} public String jsonArray(){
List<String> list=new ArrayList<String>();
JSONArray jsonArray=new JSONArray(list); return SUCCESS;
}
public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public music getMusic() {
return Music;
} public void setMusic(music music) {
Music = music;
} public List<music> getMusicList() {
return musicList;
} public void setMusicList(List<music> musicList) {
this.musicList = musicList;
} public static long getSerialversionuid() {
return serialVersionUID;
} }

使用流的方式:

action:

package action;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction; import Util.HibernateUtil; import com.opensymphony.xwork2.ActionSupport; public class ajaxTest1 extends ActionSupport {
/**
* 判断姓名是否存在
*/
private static final long serialVersionUID = 1L;
private InputStream inputStream;
private String name;
private String location;
@SuppressWarnings("unchecked")
public String ajaxTest() throws UnsupportedEncodingException{
if(name.equals("")){
inputStream=new ByteArrayInputStream("姓名不可以是空值哦。".getBytes("utf-8"));
System.out.println("AJAX invoing-------------name="+name);
}else{
//inputStream=new ByteArrayInputStream("姓名可以使用".getBytes("utf-8"));
SessionFactory sessionFactory= HibernateUtil.getSessionFactory();
Session session=sessionFactory.getCurrentSession();
Transaction tr= session.beginTransaction();
String hql="from domain.user where name='"+name+"' ";
Query query=session.createQuery(hql);
List<domain.user> list=query.list();
//System.out.println(list.get(0).getName()); if(!list.isEmpty()){
inputStream=new ByteArrayInputStream("姓名已存在。".getBytes("utf-8"));
}else{
inputStream=new ByteArrayInputStream("姓名可以使用。".getBytes("utf-8"));
}
session.clear();
session.flush();
tr.commit();
}
return SUCCESS;
}
public InputStream getInputStream() {
return inputStream;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public static long getSerialversionuid() {
return serialVersionUID;
} }

jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
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>ajaxTest1</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="jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript"> $(function(){
alert();
$("#examine").focusout(function(){ test();
}); }); function test(){
$.ajax({
type: "POST",
url: "ajax/ajaxTest1.action",
data: "name="+$("#examine").val(),
success: function(msg){
alert( "Data Saved: " + msg );
} });
}
</script> </head> <body>
<form action="" method="post" enctype="multipart/form-data"></form>
<table>
<tr>
<td>姓名:</td>
<td></td>
<td>密码:</td>
</tr>
<tr>
<td> <input name="username" type="text" maxlength="40" id="examine"></td>
<td></td>
<td> <input name="password" type="password" maxlength="40" ></td>
</tr>
</table> </body>
</html>

struts2下实现的json传递list,object。的更多相关文章

  1. Json传递数据两种方式(json大全)

    1.Json传递数据两种方式(json大全)----------------------------字符串 var list1 = ["number","name&quo ...

  2. Poco::JSON::Array 中object 设置preserveInsertionOrder 时,stringify出错-->深入解析

    在使用poco version 1.6.0时 Poco::JSON::Array 在object  设置preserveInsertionOrder =true 时 调用 array.stringif ...

  3. [Asp.net mvc]Asp.net mvc 使用Json传递数据

    在之前的练习中一直是直接传递的Model到后台或是单个数据到后台,今天在使用中遇到了点问题,不能使用Model传递到后台,但又要实现多个数据到后台,实验了多次有了以下的解决方案,给自己留个笔记. 功能 ...

  4. 通过json传递图片(base64编码)

    程序一: 后台代码: public ActionResult Index() { FileStream fs = new FileStream("e:\\file\\psb.jpg" ...

  5. xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cycle” in ARC-enabled code

    xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cyc ...

  6. JSON: JavaScript Object Notation

    JSON是JavaScript Object Notation 的缩写,是JS提供的一种数据交换格式.1) JSON对象本质上就是一个JS对象,但是这个对象比较特殊,它可以直接转换为字符串,在不同语言 ...

  7. android跟服务器使用json传递数据

    最近在做项目,使用了json传递数据,把服务器对象转换成json字符串返回,android使用gson包解析json字符串变成对象. 1.服务器代码编写,我这边是在servlet里面 Peron pe ...

  8. IE8、IE9浏览器下报:JSON未定义 解决方法

    IE8.IE9浏览器下报:JSON未定义的问题 解决方法: 在jsp中引入如下代码 <!-- 解决 IE8.IE9 下显示混乱的问题--><% String browserStrin ...

  9. 玩转Web之Json(四)---json与(Object/List/Map)的相互转化

    在做web应用时,经常需要将json转化成Object/list/map或者将Object/List/map转化成json,通过简单封装可以在写代码是减轻很多负担.本文将给出json转化的一系列方法. ...

随机推荐

  1. [转]Hibernate重要规则总结

    实体类的编写规则 l        实体类必须具备无参构造方法 l        实体类必须具备数据库标识 l        通常选用无业务意义的逻辑主键作为数据库标识,通常是int/long/Str ...

  2. 【linux】umask

    1.默认情况下的umask值是022 [root@andon ~]# umask 0022  2.umask作用 默认文件权限:666(linux创建文件默认无执行权限)-umask =644(6-0 ...

  3. 【python】浅谈for...else...语句

    for循环可以和 else 子句同时使用(for...else).当迭代完for循环完整个列表失败后,会执行else语句.但循环中被 break 终止的情况下不会执行.如下例子所示: for i in ...

  4. 关于checkbox的attr无效的问题

    jq用了10版本的,一直发现attr无效,查找良久,由同事帮忙解决该问题,感谢. 特记录下该问题. 由于 新版本attr换成了prop的问题. $("input[name='delIds'] ...

  5. (转)jQuery禁止右键菜单,全选

    本文转载自:http://www.cnblogs.com/lucker/archive/2012/09/21/2696464.html $("body").bind("c ...

  6. gcc内嵌汇编详解

    [作者:byeyear    首发:cnblogs    Email:east3@163.com    转载请注明] 有时候我们希望在C/C++代码中使用嵌入式汇编,因为C中没有对应的函数或语法可用. ...

  7. php接二进制文件

    PHP默认只识别application/x-www.form-urlencoded标准的数据类型. 因此,对型如text/xml 或者 soap 或者 application/octet-stream ...

  8. python命令行下tab键补全命令

    在python命令行下不能使用tab键将命令进行补全,手动输入又很容易出错. 解决:tab.py #/usr/bin/env python # -*- coding:utf-8 -*- ''' 该模块 ...

  9. KB975517 "The update does not apply to your system"

    https://www.manageengine.com/products//desktop-central/patch-management/Windows-Vista-Ultimate-Editi ...

  10. android学习笔记27——Activity

    Activity配置==> android应用程序要求所有的应用程序组件都需要进行显示配置后,才可正常使用.包括:Activity.Service.BroadCastReceiver.Conte ...