Struts1+JQuery的例子
Struts1+JQuery的例子
2014年2月10日
11:25
Struts1+JQuery+JSON/XML的例子
1.Struts+JQuery+XML
struts-config.xml如下:
[xhtml] view plaincopy
TestxmlAction.java如下:
[java] view plaincopy
/*
- Generated by MyEclipse Struts
- Template path: templates/java/JavaClass.vtl
*/
package action;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import form.TestForm;
/**
-
MyEclipse Struts
-
Creation date: 03-05-2010
-
XDoclet definition:
-
@struts.action path="/test" name="testForm" input="index.jsp" scope="request"
/
public class TestXmlAction extends Action {
/- Generated Methods
*/
/**
-
Method execute
-
@param mapping
-
@param form
-
@param request
-
@param response
-
@return ActionForward
-
@throws IOException
/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
TestForm testForm = (TestForm) form;// TODO Auto-generated method stub
response.setContentType("text/xml; charset=utf-8");//传输xml时要用html
response.setCharacterEncoding("utf-8");
System.out.println(testForm.getTestvalue());
PrintWriter pw=response.getWriter();
//1.传递单个参数,注意应将text/xml改为text/html
/int i=9;
pw.print(i);
pw.flush();/
//2.生成xml文件返回给html页面,此时list里面为单个String
/ StringBuilder xml = new StringBuilder();
Listlist=new ArrayList ();
list.add("aaa");
list.add("bbb");
list.add("ccc");
xml.append(""); ");
for (Object o : list) {
xml.append("- ").append(o).append("
");
}
xml.append("
System.out.println(xml);
pw.print(xml.toString());
pw.flush();/
//3.生成xml文件返回给html页面,此时list里面为对象类型
/response.setContentType("text/xml;charset=utf-8");
StringBuilder xml = new StringBuilder();
Listlist=new ArrayList ();
User user1=new User();
User user2=new User();
User user3=new User();
user1.setUsername("username1");
user1.setPassword(1);
user2.setUsername("username2");
user2.setPassword(2);
user3.setUsername("username3");
user3.setPassword(3);list.add(user1);
list.add(user2);
list.add(user3);
xml.append(""); ");
for (int i=0;i<list.size();i++) {
xml.append(""); ");
xml.append("").append(list.get(i).getUsername()).append(" ");
xml.append("").append(list.get(i).getPassword()).append(" ");
xml.append("
}
xml.append("
System.out.println(xml);
pw.print(xml.toString());*/
return null;
}
- Generated Methods
}
辅助类User:
[java] view plaincopy
package action;
public class User {
private String username;
private int password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
}
indexxml.jsp如下:
[java] view plaincopy
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"😕/"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
<title>MyStrutsJQueryJson</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="/S1.2SHJQuery/js/jquery-1.4.2.js"></script>
2.Struts+JQuery+JSON
TestAction如下:
[java] view plaincopy
/*
- Generated by MyEclipse Struts
- Template path: templates/java/JavaClass.vtl
*/
package action;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import form.TestForm;
/**
-
MyEclipse Struts
-
Creation date: 03-05-2010
-
XDoclet definition:
-
@struts.action path="/test" name="testForm" input="index.jsp" scope="request"
/
public class TestAction extends Action {
/- Generated Methods
*/
/**
- Method execute
- @param mapping
- @param form
- @param request
- @param response
- @return ActionForward
- @throws UnsupportedEncodingException
/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
TestForm testForm = (TestForm) form;// TODO Auto-generated method stub
response.setContentType("text/json; charset=utf-8"); //注意设置为json,如果为xml,则设为xml
/ response.setContentType("text/xml; charset=utf-8");传输xml时要用xml
- Generated Methods
-
response.setCharacterEncoding("utf-8");
-
/
System.out.println(testForm.getTestvalue());
//1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
/Listlist=new ArrayList ();
list.add("string1");
list.add("string2");
list.add("string3");
JSONArray json=JSONArray.fromObject(list);
try {
PrintWriter out=response.getWriter();
System.out.println(json);
out.print(json);out.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //2.struts1.2+JQuery+Json传递Map参数 /*Map<String,String> map=new HashMap<String,String>(); map.put("name1","string1"); map.put("name2","string2"); map.put("name3","string3"); JSONArray json=JSONArray.fromObject(map); try { PrintWriter out=response.getWriter(); System.out.println(json); out.print(json); out.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //3.传递单个String值 /*String singlepara="{/"name/":'中国'}";//要注意格式 JSONObject json=JSONObject.fromObject(test); try { PrintWriter out=response.getWriter(); System.out.println(json); out.print(json); out.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //4.struts1.2+JQuery+Json传递User参数 /*User user1=new User(); user1.setPassword(1); String username = "你好"; user1.setUsername(username); //user1.setUsername(new String(username.getBytes("utf-8"), "iso8859-1")); JSONObject json=JSONObject.fromObject(user1); try { PrintWriter out=response.getWriter(); System.out.println(json); out.print(json); out.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //5.struts1.2+JQuery+Json传递list参数,此时list的类型为String List<User> list=new ArrayList<User>(); User user1=new User(); user1.setPassword(1); user1.setUsername("u1"); User user2=new User(); user2.setPassword(2); user2.setUsername("u2"); User user3=new User(); user3.setPassword(3); user3.setUsername("u3"); list.add(user1); list.add(user2); list.add(user3); JSONArray json=JSONArray.fromObject(list); try { PrintWriter out=response.getWriter(); System.out.println(json); out.print(json); out.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null;
}
}
struts-config.xml如下:
[c-sharp] view plaincopy
index.jsp如下:
[java] view plaincopy
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"😕/"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<title>struts+jquery+json</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="/MyStrutsJQueryJson/js/jquery-1.4.2.js"></script>
<script type="text/javascript">
/*1.struts1.2+JQuery+Json传递list参数,此时list的类型为String
$(function(){
$("#submitbutton").click(function(){
var params={testvalue:$('#test').val()};
$.ajax({
url:"test.do",
data:params,
type:'post',
dataType:'json',
success:function(data){
//data值:["string1","string2","string3"]
alert("成功");
alert(data.length);
for(var j=0;j<data.length;j++)
{
alert(data[j]);
}
},
error: function(){
alert("失败");
}
})
})
})*/
//2.struts1.2+JQuery+Json传递Map参数
/*$(function(){
$("#submitbutton").click(function(){
alert("start");
var params={testvalue:$('#test').val()};
$.ajax({
url:"test.do",
data:params,
type:'post',
dataType:'json',
success:function(data){
//alert(data.name1);//缺点是须知道属性名,在JSONArray下
//迭代循环输出
//data值为:[{"name3":"string3","name1":"string1","name2":"string2"}]
$.each(data[0],function(key,value){
alert(key+" "+value);
})
},
error: function(){
alert("失败");
}
})
})
})*/
//3.struts1.2+JQuery+Json传递String参数
/*
$(function(){
$("#submitbutton").click(function(){
var params={testvalue:$('#test').val()};
alert("start");
$.ajax({
url:"test.do",
data:params,
type:'post',
dataType:'json',
success:function(data){
alert("成功");
alert(data.name);
},
error: function(){
alert("失败");
}
})
})
})*/
//4.struts1.2+JQuery+Json传递User参数
/*$(function(){
$("#submitbutton").click(function(){
var params={testvalue:$('#test').val()};
$.ajax({
url:"test.do",
data:params,
type:'post',
dataType:'json',
success:function(data){
//data值为:{"password":1,"username":"你好"}
alert("成功");
alert(data.username);
alert(data.password);
},
error: function(){
alert("失败");
}
})
})
})*/
//5.struts1.2+JQuery+Json传递list参数,此时list的类型为User
$(function(){
$("#submitbutton").click(function(){
var params={testvalue:$('#test').val()};
$.ajax({
url:"test.do",
data:params,
type:'post',
dataType:'json',
success:function(data){
alert("成功");
//data值:[{"password":1,"username":"u1"},{"password":2,"username":"u2"},{"password":3,"username":"u3"}]
/*for(var j=0;j<data.length;j++)
{
alert(data[j].username);
alert(data[j].password);
}*/
$.each(data,function(i){
$.each(data[i],function(key,value){
alert(key+" "+value);
})
})
},
error: function(){
alert("失败");
}
})
})
})
</script>
</head>
测试输入框: