关于Struts2和ajax
2015-10-04 16:01
543 查看
分两部分:
第一种:当提交和返回参数不为json时:
$.post(
"testAjax.action",
$("#f1").serializeArray(),
function(data){
$("#show").html("result:"+"<h1>"+data+"</h1>");
},
"text");
action:
//Struts2用二进制的流来输出所有结果
private InputStream is;(set,get方法)
//返回输出结果的方法
public InputStream getResult(){
return is;
}
//接收post参数
private String username;
private String password;(set,get方法)
public String myLogin() throws Exception{
System.out.println(username);
System.out.println(password);
if(this.username.equals("yan") && this.password.equals("root")){
this.is = new ByteArrayInputStream("成功登陆".getBytes("utf-8"));
}else{
this.is = new ByteArrayInputStream("登陆失败".getBytes("utf-8"));
}
return "login";
}
Struts.xml中package正常写,action如下,result type=stream
<action name="testAjax" class = "com.struts2_0008ajax_json.action.AjaxStream" method = "myLogin">
<result type = "stream" name = "login">
<param name="contentType">text/html</param>
<param name="inputName">result</param>
</result>
</action>
第二种:当使用json时
var url = "http://localhost:8080/struts2_0008ajax_json/myJson.action";
var param = {
"bookname":$("#bookname").val(),
"introduce":$("#introduce").val(),
"writer":$("#writer").val()
};
alert(param.bookname);
$.post(
url,
param,
function(data){
console.log(data);
$("#show").html("<p>书名:"+data.bookname+"</p>"
+"<p>介绍:"+data.introduce+"</p>"
+"<p>作者:"+data.writer+"</p>"
+"<p>回传:"+data.JsonMap.hello+"</p>");
},
"json"
);
package com.struts2_0008ajax_json.action;
import java.util.HashMap;
import java.util.Map;
import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
action:
public class myJson extends ActionSupport{
private Map<String,String> map = new HashMap<String,String>();
private String bookname;
private String introduce;
private String writer;
@JSON(name = "JsonMap")//改变返回的json串的名字
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String mJson(){
System.out.println("json");
map.put("hello", "json--struts");
return "success";
}
}
Struts:
<package name="myPackage" namespace="/" extends="json-default">
<action name="myJson" class = "com.struts2_0008ajax_json.action.myJson" method = "mJson">
<result type = "json">
<param name="noCache">true</param>
<param name="contentType">text/html</param>
</result>
</action>
</package>
第一种:当提交和返回参数不为json时:
$.post(
"testAjax.action",
$("#f1").serializeArray(),
function(data){
$("#show").html("result:"+"<h1>"+data+"</h1>");
},
"text");
action:
//Struts2用二进制的流来输出所有结果
private InputStream is;(set,get方法)
//返回输出结果的方法
public InputStream getResult(){
return is;
}
//接收post参数
private String username;
private String password;(set,get方法)
public String myLogin() throws Exception{
System.out.println(username);
System.out.println(password);
if(this.username.equals("yan") && this.password.equals("root")){
this.is = new ByteArrayInputStream("成功登陆".getBytes("utf-8"));
}else{
this.is = new ByteArrayInputStream("登陆失败".getBytes("utf-8"));
}
return "login";
}
Struts.xml中package正常写,action如下,result type=stream
<action name="testAjax" class = "com.struts2_0008ajax_json.action.AjaxStream" method = "myLogin">
<result type = "stream" name = "login">
<param name="contentType">text/html</param>
<param name="inputName">result</param>
</result>
</action>
第二种:当使用json时
var url = "http://localhost:8080/struts2_0008ajax_json/myJson.action";
var param = {
"bookname":$("#bookname").val(),
"introduce":$("#introduce").val(),
"writer":$("#writer").val()
};
alert(param.bookname);
$.post(
url,
param,
function(data){
console.log(data);
$("#show").html("<p>书名:"+data.bookname+"</p>"
+"<p>介绍:"+data.introduce+"</p>"
+"<p>作者:"+data.writer+"</p>"
+"<p>回传:"+data.JsonMap.hello+"</p>");
},
"json"
);
package com.struts2_0008ajax_json.action;
import java.util.HashMap;
import java.util.Map;
import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
action:
public class myJson extends ActionSupport{
private Map<String,String> map = new HashMap<String,String>();
private String bookname;
private String introduce;
private String writer;
@JSON(name = "JsonMap")//改变返回的json串的名字
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String mJson(){
System.out.println("json");
map.put("hello", "json--struts");
return "success";
}
}
Struts:
<package name="myPackage" namespace="/" extends="json-default">
<action name="myJson" class = "com.struts2_0008ajax_json.action.myJson" method = "mJson">
<result type = "json">
<param name="noCache">true</param>
<param name="contentType">text/html</param>
</result>
</action>
</package>
相关文章推荐
- Struts的ONGL
- ITOO4.0环境搭建Eclipse+Jboss+Maven+SVN
- Java中在一个字符串的固定位置插入字符串
- java集合框架之链表
- hdu acm java
- Java中的static关键字解析
- 66. Plus One | leetcode 66 Java 最短代码实现
- 数组(主要介绍关于数组的一些常用算法)
- Eclipse 从安装到使用(傻子都看懂,你就不用说了,哈哈哈)
- Java在一定范围随机生成日期和经纬度
- Java-二分查找算法
- java 内部类
- Add Binary | leetcode 67 【Java解题报告】
- java SE复习笔记60
- java SE复习笔记59
- Spring 4与Struts 2项目基于XML的集成实战
- java SE复习笔记58
- java 复习笔记57
- java SE复习笔记56
- Spring 与JDBC结合