首先要下载struts2 和json 包,然后在myeclipse 里面创建个web项目;
下面是json的下载地址:
http://sourceforge.net/projects/json-lib/files/
使用json 之前要阅读下面的文档,注意一下包也要用:
- jakarta commons-lang 2.5
- jakarta commons-beanutils 1.8.0
- jakarta commons-collections 3.2.1
- jakarta commons-logging 1.1.1
- ezmorph 1.0.6
上面这些包可以从下载的struts 的lib下面copy;
除了这些包还有struts2 要用的一些包,不重复就行;
注意:用Ajax 访问 struts2action时,只需要,ajax发送请求的时候url写成action的名字;
这里是action的配置:
<action name="getJsonAction" class="com.tf.zhpp3.test.EntryAction"
method="getJsonData">
</action>
下面是前台ajax代码:
<script type="text/javascript">
var d2 = document.getElementById("test2");
function get(url,data){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.responseText);
}
};
xhr.open("get",url,true);
xhr.send(null);
}
d2.onclick = function(){
url = "getJsonAction?weekID=201305";
get(url,null);
};
</script>
接下来是java代码:
public String getJsonData() throws IOException {
testListToJSON();
// 获得response
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
String weekId = (String) request.getParameter("weekID");
// 设置输出UTF-8编码
response.setCharacterEncoding("UTF-8");
// 获得输出流
PrintWriter pw = response.getWriter();
// 将数据写入输出流
//pw.write(jsonArray.toString()+ "your action param is " + weekId);
pw.write(testBeadToJSON().toString());
// 清楚数据流缓冲区
pw.flush();
// 关闭输出流
pw.close();
return SUCCESS;
}