`
joeyhacker
  • 浏览: 95939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

当struts2遇上json.

阅读更多

这几天想用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会帮你转成你想要的. 先写到这吧, 等想起来了再说.

 

分享到:
评论

相关推荐

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...

    Struts2ToJson003.zip

    接下来,我们需要配置Struts2的`struts.xml`配置文件以启用JSON结果类型。在`&lt;package&gt;`标签内添加以下配置: ```xml &lt;result-type name="json" class="org.apache.struts2.views.json.struts2.JsonResult" ...

    struts2-json-plugin-2.2.3.1

    struts2-json-plugin-2.2.3.1能用的包

    struts-json.jar

    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.json.jquery简单实例

    1. **配置Struts2**:首先,我们需要在Struts2的配置文件(struts.xml)中设置Action,让其能够返回JSON格式的数据。这通常涉及到添加一个特定的Result类型,如`json`,并配置相应的Action类来生成JSON响应。 2. **...

    Struts2升级到2.5.30,问题解决及过程记录

    2. **配置文件的调整**:Struts2的配置文件(如struts.xml)可能会因版本升级而需要调整。例如,新的版本可能会引入新的拦截器或动作配置,需要检查并更新配置以充分利用新特性。 3. **API变化**:新版本可能移除了...

    Struts2返回JSON对象.doc

    3. 配置Struts2的`struts.xml`文件,为每个方法指定一个返回类型为JSON的Action。这里需要继承`json-default`包,因为它包含了处理JSON的配置。 ```xml &lt;package name="default" namespace="/json" extends="json-...

    struts2-json包集合 不会出现任何报错

    - 配置Struts2的配置文件(struts.xml或struts-default.xml),添加JSON插件的配置,以便让Struts2框架知道如何处理JSON相关的Action。 - 确保Action类中有相应的getter和setter方法,以便JSON插件能够正确地序列化...

    struts2+json

    在struts.xml配置文件中,你可以定义一个Action,指定其结果类型为"json",并设置想要暴露给JSON的字段。 例如: ```xml &lt;action name="ajaxAction" class="com.example.AjaxAction"&gt; &lt;result type="json"&gt; *.* ...

    struts整合json用到Jar.zip

    1. **JSON插件安装**:在Struts2中,通常需要引入一个名为`struts2-json-plugin-x.x.x.jar`的插件,这个文件可能就是压缩包中的主要内容。该插件提供了JSON结果类型,使得Action可以直接返回JSON格式的数据。 2. **...

    Struts2 JQueryJson例子 .rar

    当Struts2与JQuery和JSON结合时,可以创建出高效、交互性强的web应用程序。 这个"Struts2 JQueryJson例子 .rar"压缩包很可能是包含了一个实际的项目实例,演示了如何在Struts2框架中利用JQuery和JSON进行数据交互。...

    struts2+json的使用

    2. 配置Struts2的JSON插件:在struts.xml配置文件中,添加JSON插件的配置,以启用JSON支持。 ```xml &lt;constant name="struts.enable.SMD" value="true"/&gt; &lt;constant name="struts.action.extension" value=",json"/...

    struts2_spring_json.rar_liferay struts2 json_portlet json_spring

    在"strutsPortlet"这个压缩包中,很可能包含了一个示例portlet的源代码,演示了如何在Struts2和Spring的上下文中处理JSON请求和响应。开发者可以通过研究这些代码了解以下知识点: 1. **Struts2 JSON插件**:了解...

    struts2和json的jar包

    Struts2和JSON是两种在Java Web开发中广泛使用的技术。Struts2是一个基于MVC(Model-View-Controller)架构的开源框架,用于构建高效、可扩展且易于维护的企业级Web应用程序。JSON(JavaScript Object Notation)则...

    struts2 json Ajax 整合所需全部jar包.zip

    通常,我们需要在struts.xml配置文件中为特定的Action定义一个JSON结果类型,并确保相关的依赖库已经包含在项目中。 Ajax是实现这种异步通信的关键技术。通过JavaScript,我们可以创建XMLHttpRequest对象,向服务器...

    struts2json.txt

    - **上述配置的作用是:** 当客户端发送请求时,所有请求都会被重定向到Struts2的FilterDispatcher类中进行处理。这使得Struts2能够根据配置好的拦截器和action来决定如何处理请求。 #### 3. **实现Ajax登录功能**...

    struts2-json-plugin-2.3.8.jar

    在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...

    struts2与json整合

    这通常是在`struts.xml`文件中完成的,通过声明`json-default`包,并且在其中定义结果类型和拦截器。例如: ```xml &lt;package name="json-default" extends="struts-default"&gt; &lt;result-type name="json" class=...

    struts2--json包

    1. **配置JSON插件**:首先,要在Struts2中启用JSON支持,我们需要在`struts.xml`配置文件中添加JSON插件的配置。这通常包括注册插件以及指定哪些Action需要返回JSON响应。 ```xml &lt;constant name="struts.enable....

    struts-taglib-1.3.8.jar

    struts-taglib-1.3.8.jar struts-taglib-1.3.8.jar

Global site tag (gtag.js) - Google Analytics