这几天想用jquery做点东西, 由于我的后台架构是SSH2的, 所以难免要用jquery和struts2打交到. 当然他们直接的交流语言首选当然是json了. 由于以前做过extjs的项目, 所以对json的数据结构还是比较了解地,呵呵.
开始步入正题: 先说说web端吧, jquery的ajax是支持json格式的, 例如:
$.getJSON("test.js", function(json){
alert("JSON Data: " + json.users[3].name);
});
当然你也可以用$.get ,
$.get("test.php", function(data){
alert("Data Loaded: " + data);
}
,"json"
);
最后要指明数据类型. 具体的看api吧. 看看我的小例子:
$.get("manage/test.action" ,function(json){
var data = eval('('+json+')'); //转换成javascript类型的对象.
alert(data.xxx);
//自己做处理吧. 格式都是{"xxx":["xxx":"xxx","xxx":"xxx"]} 的样子....
},"json";
}
其他就没啥了, 有人说要导入json.js那个文件. 我认为没用. 反正我没用上那个文件里面的方法.
看看struts2 , 我们都知道有个jar包叫"json-lib.jar", 好像是google_code上的~ . 如果用他呢, 会把你累死~ , 以前我做extjs的时候就是用的它, 哎~ 一个字累. JSONObject 和 JSONArray 来回套着用.. 代码N多..
import java.util.List;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import com.joey.shopping.entity.shop.SuperType;
public class TestAction extends GoodsAction {
private static final long serialVersionUID = 1L;
private List<SuperType> tl;
public List<SuperType> getTl() {
return tl;
}
public String execute() throws Exception {
this.tl = goodsManager.getAllS_Types();
return SUCCESS;
List<SuperType> list = new ArrayList<SuperType>();
JSONObject json = new JSONObject();
JSONArray st_list = new JSONArray();
list = goodsManager.getAllS_Types();
int j = 0;
if (list.size() == 0) {
json.put("types", null);
return;
}
json.put("count", list.size());
Iterator<SuperType> it = list.iterator();
while (it.hasNext()) {
int i = 0;
JSONObject st1 = new JSONObject();
JSONArray t_list = new JSONArray();
SuperType st = it.next();
Iterator<Type> tt = st.getTypes().iterator();
while (tt.hasNext()) {
JSONObject t1 = new JSONObject();
Type t = tt.next();
t1.put("t_id", t.getId());
t1.put("t_name", t.getName());
t1.put("t_info", t.getInfo());
t1.put("g_size", t.getGoods().size());
t_list.add(i++, t1);
}
st1.put("st_id", st.getId());
st1.put("st_name", st.getSt_name());
st1.put("st_info", st.getSt_info());
st1.put("subtypes", t_list);
st_list.add(j++, st1);
}
json.put("types", st_list);
this.renderJson(json.toString());
}
}
当然现在好了, 我们的struts2有个json的插件, 也是在google上.名字叫jsonplugin. 有个它我们可以直接返回list类型的数据哦, 它自动帮你转换成json,呵呵. 来看看struts2的配置. 本人强烈讨厌用.xml配东西,感觉特累. 看看我的写法.
@ParentPackage("json-default")
public class TestAction extends GoodsAction {
private static final long serialVersionUID = 1L;
private List<SuperType> tl;
public List<SuperType> getTl() {
return tl;
}
@Action(value = "/test", results = { @Result(name = "success", type = "json") })
public String execute() throws Exception {
this.tl = goodsManager.getAllS_Types();
return SUCCESS;
}
}
@GoodsAct
ion可以用其他的package.但你的这个类必须用json-default这个包
很简单吧, 你要是用.xml, 它前面那一堆东西你能背着写?? 呵呵. 看清楚哦, 我返回的是list类型的数据. 不过没关系, struts2会帮你转成你想要的. 先写到这吧, 等想起来了再说.
分享到:
相关推荐
Struts2返回JSON对象. 通过Struts2框架返回json对象,更好传递数据
Struts2 JQueryJson例子 .rar Struts2 JQueryJson例子 .rar
struts2-json-plugin-2.2.3.1能用的包
struts2.json.jquery简单实例
json-lib-2.2.1-jdk15.jar, ognl-2.7.3.jar, struts2-core-2.1.8.1.jar, struts2-json-plugin-2.2.1.jar, xwork-core-2.1.6.jar 避免版本不一致导致的问题,将我项目中所涉及的包上传分享以供下载~
Struts2升级到2.5.30,问题解决及过程记录, 文章详见:https://blog.csdn.net/sinat_36743893/article/details/124582101
struts2json.txtstruts2json.txt
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
Struts2返回JSON对象.docxStruts2返回JSON对象.docx
jquery和struts2结合使用的jar包
org.springframework.web.struts-3.1.0.M2.jar
struts整合json用到Jar.zip ,struts整合json用到Jar.zip
struts-taglib-1.3.8.jar struts-taglib-1.3.8.jar
struts2自带的json转换 倒入jar文件 struts.xml中 <package ......extends="json-default" <result type="json"/>
该资源是使用struts2框架进行操作,返回json格式数据,前台通过ajax提交内容。
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
struts2-json-plugin,Struts JSON插件
struts2给前端传递json格式的数据的小案例
一个简单的struts2 + json ...json包使用 struts2-json-plugin
struts-2.3.34-all.rar,包括app,docs,lib,src