Struts2 JsonPlugin

摘要:struts2-jsonplugin的简单应用

背景啰嗦:编写ajax时候经常需要通过json格式从后台获取数据,如果每次都自己写代码把类转化成json,那是很麻烦的,因此,json plugin就出现了,它自动帮我们把类转化成json传给浏览器。

json plugin在Struts2.1.2之后就被集成进去了。

用法挺简单的,前提条件当然是需要的jar都被放到lib文件夹了。然后在struts2的xml配置文件中。。不同之处就是extend和返回格式的地方。

	<package name="model_json" extends="json-default">
		<action name="getModelList" class="getModelListAction">
			<result type="json"/>
		</action>
	</package>

json plugin可以通过xml配置,也可以通过注解,xml配置在文末的网址中就有了。

注解,我只用到了@JSON(serialize=false)【表示该类不转化成json】,其它还有name等。其它听说可以通过root属性来配置返回的json的根,目前还没弄%>_<%

package com.ids.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.ids.dto.ModelListDto;
import com.ids.service.ModelManager;
import com.opensymphony.xwork2.ActionSupport;

@Scope("prototype")
@Controller
public class GetModelListAction extends ActionSupport {
	private ModelManager modelManager;
	private List<ModelListDto> model_list;

	public List<ModelListDto> getModel_list() {
		return model_list;
	}

	public void setModel_list(List<ModelListDto> model_list) {
		this.model_list = model_list;
	}

	@JSON(serialize=false)
	public ModelManager getModelManager() {
		return modelManager;
	}

	@Resource
	public void setModelManager(ModelManager modelManager) {
		this.modelManager = modelManager;
	}

	@Override
	public String execute() throws Exception {
		this.model_list = modelManager.getModelList();
		return SUCCESS;
	}

}
public class ModelListDto {
	private Integer id;
	private String name;
        .....省略getter和setter
}

这样得到的json是

{"model_list":[{"id":7,"name":"Car"},{"id":20,"name":"quan"}]}

如果错误的地方,希望您能留言说明,不胜感激!

参考网址:

官网英文:http://struts.apache.org/2.2.1.1/docs/json-plugin.html

中文翻译:http://unmi.cc/struts2-json-plugin-guide

转载请注明: 转载自http://jyd.me/

本文链接地址: Struts2 JsonPlugin

Tagged on: ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注