这几天想用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-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
接下来,我们需要配置Struts2的`struts.xml`配置文件以启用JSON结果类型。在`<package>`标签内添加以下配置: ```xml <result-type name="json" class="org.apache.struts2.views.json.struts2.JsonResult" ...
struts2-json-plugin-2.2.3.1能用的包
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 避免版本不一致导致的问题,将我项目中所涉及的包上传分享以供下载~
1. **配置Struts2**:首先,我们需要在Struts2的配置文件(struts.xml)中设置Action,让其能够返回JSON格式的数据。这通常涉及到添加一个特定的Result类型,如`json`,并配置相应的Action类来生成JSON响应。 2. **...
2. **配置文件的调整**:Struts2的配置文件(如struts.xml)可能会因版本升级而需要调整。例如,新的版本可能会引入新的拦截器或动作配置,需要检查并更新配置以充分利用新特性。 3. **API变化**:新版本可能移除了...
3. 配置Struts2的`struts.xml`文件,为每个方法指定一个返回类型为JSON的Action。这里需要继承`json-default`包,因为它包含了处理JSON的配置。 ```xml <package name="default" namespace="/json" extends="json-...
- 配置Struts2的配置文件(struts.xml或struts-default.xml),添加JSON插件的配置,以便让Struts2框架知道如何处理JSON相关的Action。 - 确保Action类中有相应的getter和setter方法,以便JSON插件能够正确地序列化...
在struts.xml配置文件中,你可以定义一个Action,指定其结果类型为"json",并设置想要暴露给JSON的字段。 例如: ```xml <action name="ajaxAction" class="com.example.AjaxAction"> <result type="json"> *.* ...
1. **JSON插件安装**:在Struts2中,通常需要引入一个名为`struts2-json-plugin-x.x.x.jar`的插件,这个文件可能就是压缩包中的主要内容。该插件提供了JSON结果类型,使得Action可以直接返回JSON格式的数据。 2. **...
当Struts2与JQuery和JSON结合时,可以创建出高效、交互性强的web应用程序。 这个"Struts2 JQueryJson例子 .rar"压缩包很可能是包含了一个实际的项目实例,演示了如何在Struts2框架中利用JQuery和JSON进行数据交互。...
2. 配置Struts2的JSON插件:在struts.xml配置文件中,添加JSON插件的配置,以启用JSON支持。 ```xml <constant name="struts.enable.SMD" value="true"/> <constant name="struts.action.extension" value=",json"/...
在"strutsPortlet"这个压缩包中,很可能包含了一个示例portlet的源代码,演示了如何在Struts2和Spring的上下文中处理JSON请求和响应。开发者可以通过研究这些代码了解以下知识点: 1. **Struts2 JSON插件**:了解...
Struts2和JSON是两种在Java Web开发中广泛使用的技术。Struts2是一个基于MVC(Model-View-Controller)架构的开源框架,用于构建高效、可扩展且易于维护的企业级Web应用程序。JSON(JavaScript Object Notation)则...
通常,我们需要在struts.xml配置文件中为特定的Action定义一个JSON结果类型,并确保相关的依赖库已经包含在项目中。 Ajax是实现这种异步通信的关键技术。通过JavaScript,我们可以创建XMLHttpRequest对象,向服务器...
- **上述配置的作用是:** 当客户端发送请求时,所有请求都会被重定向到Struts2的FilterDispatcher类中进行处理。这使得Struts2能够根据配置好的拦截器和action来决定如何处理请求。 #### 3. **实现Ajax登录功能**...
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
这通常是在`struts.xml`文件中完成的,通过声明`json-default`包,并且在其中定义结果类型和拦截器。例如: ```xml <package name="json-default" extends="struts-default"> <result-type name="json" class=...
1. **配置JSON插件**:首先,要在Struts2中启用JSON支持,我们需要在`struts.xml`配置文件中添加JSON插件的配置。这通常包括注册插件以及指定哪些Action需要返回JSON响应。 ```xml <constant name="struts.enable....
struts-taglib-1.3.8.jar struts-taglib-1.3.8.jar