struts2+jquery+json例子解说
jquery-1.4.2.js
struts.jar
json.jar
实现后台调用前台返回true或false,例子如下:
jsp和js代码如下:
<script type="text/javascript">
function getJson(){
$.ajax({
type : 'POST',
url : '<%=basePath%>/ajax/getJson.action',
data : "",
dataType : 'json',
error : function() {
alert('网络异常!');
return false;
},
success : function(root){
var json=eval(root);
alert(json.name);
if(root){
alert('数据更新成功!');
return true;
}else{
alert('数据更新失败!');
return false;
}
}
});
}
</script>
<input type="button" name="json" id="json" onClick="getJson()" value="getJson"/>
---------------------------------------------
struts.xml配置文件
<struts>
<package name="ajax" extends="json-default" namespace="/ajax">
<action name="getJson" class="com.struts2.dao.IndexfoAction" method="getJson">
<result name="success" type="json">
<param name="root">result</param>
</result>
</action>
</package>
</struts>
--------------------------------------------------
java代码如下:
package com.struts2.dao;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
public class IndexfoAction extends ActionSupport{
private Map<String, String> result;
public String getJson() {
try{
Map<String, String> result2 =new HashMap<String, String>();
result2.put("name", "xiaoming");
result2.put("sex","box");
this.setResult(result2);
System.out.println("wellcome to here !");
}catch(Exception ex){
}
return "success";
}
public Map<String, String> getResult() {
return result;
}
public void setResult(Map<String, String> result) {
this.result = result;
}
}
说明:在点击jsp页面中的触发按钮的时候,方调用js方法,经过url的配置找到struts.xml中的先关路径,然后找到匹配的java名称和相对应的方法,并调用后台
实现流程,在后台中分别定义了一个boolean属性,流程跑完后方返回到struts.xml文件,在struts.xml中通过配置参数方法指定参数。
备注:java类返回的参数success必须和struts中的result配置相同,否则会出错,如果去掉 <param name="root">flag</param>在js中则会返回一个json对象,例如:{"flag","true"}等信息,在此可以用var json=eval(root);来获取flag对应的值。如果返回一个对象的话,可以root.flag
在java中如果要返回信息的话,必须要实现get和set。
jquery-1.4.2.js
struts.jar
json.jar
实现后台调用前台返回true或false,例子如下:
jsp和js代码如下:
<script type="text/javascript">
function getJson(){
$.ajax({
type : 'POST',
url : '<%=basePath%>/ajax/getJson.action',
data : "",
dataType : 'json',
error : function() {
alert('网络异常!');
return false;
},
success : function(root){
var json=eval(root);
alert(json.name);
if(root){
alert('数据更新成功!');
return true;
}else{
alert('数据更新失败!');
return false;
}
}
});
}
</script>
<input type="button" name="json" id="json" onClick="getJson()" value="getJson"/>
---------------------------------------------
struts.xml配置文件
<struts>
<package name="ajax" extends="json-default" namespace="/ajax">
<action name="getJson" class="com.struts2.dao.IndexfoAction" method="getJson">
<result name="success" type="json">
<param name="root">result</param>
</result>
</action>
</package>
</struts>
--------------------------------------------------
java代码如下:
package com.struts2.dao;
import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
public class IndexfoAction extends ActionSupport{
private Map<String, String> result;
public String getJson() {
try{
Map<String, String> result2 =new HashMap<String, String>();
result2.put("name", "xiaoming");
result2.put("sex","box");
this.setResult(result2);
System.out.println("wellcome to here !");
}catch(Exception ex){
}
return "success";
}
public Map<String, String> getResult() {
return result;
}
public void setResult(Map<String, String> result) {
this.result = result;
}
}
说明:在点击jsp页面中的触发按钮的时候,方调用js方法,经过url的配置找到struts.xml中的先关路径,然后找到匹配的java名称和相对应的方法,并调用后台
实现流程,在后台中分别定义了一个boolean属性,流程跑完后方返回到struts.xml文件,在struts.xml中通过配置参数方法指定参数。
备注:java类返回的参数success必须和struts中的result配置相同,否则会出错,如果去掉 <param name="root">flag</param>在js中则会返回一个json对象,例如:{"flag","true"}等信息,在此可以用var json=eval(root);来获取flag对应的值。如果返回一个对象的话,可以root.flag
在java中如果要返回信息的话,必须要实现get和set。