1、導對包包
這里是核心包commons-fileupload-1.3.2.jarcommons-io-2.4.jarcommons-lang3-3.4.jarfreemarker-2.3.23.jarjavassist-3.20.0-GA.jarlog4j-api-2.7.jarognl-3.1.12.jarstruts2-core-2.5.8.jar這里是JSON依賴包,(ToT這里可坑哭我了,沒導對一直報錯...)commons-beanutils-1.9.2.jarcommons-collections-3.2.1.jarcommons-lang-2.4.jarezmorph-1.0.6.jarjson-lib-2.3-jdk15.jarstruts2-json-plugin-2.5.10.jar2、struts2實現Ajax、json重點在于struts.xml
1、<package>標簽的寫法:<package name="隨意" namespace="/" extends="json-default"> //extends必須繼承"json-default"</package>2、<result>標簽的寫法:<result type="json">//type必須寫json //不寫<param>標簽即該action下所有返回的變量 <param name="root">要改成json格式的變量</param></result>3、其它就和常規一樣…舉個小栗子
JsonAction.javapublic class JsonAction extends ActionSupport{ PRivate User user;//User類就name、age; private JSONArray jsonArray; @Override public String execute() throws Exception { System.out.println("測試數據"); List<User> list=new ArrayList<User>(); list.add(new User("小福",17)); list.add(new User("王優",52)); list.add(new User("布赫優",34)); jsonArray=JSONArray.fromObject(list); return SUCCESS; } public JSONArray getJsonArray() { return jsonArray; } public void setJsonArray(JSONArray jsonArray) { this.jsonArray = jsonArray; } public User getUser() { return user; } public void setUser(User user) { this.user = user; }}struts.xml<struts> <package name="ajax" namespace="/" extends="json-default"> <!-- <action name="ajax" class="com.action.AjaxAction"> </action> --> <action name="json" class="com.action.JsonAction" > <result type="json"> <param name="root">jsonArray</param> </result> </action> </package></struts>JSON.jsp(用js寫的顯得很多,jq的話很方便,但是不會)<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/Javascript">window.onload=function(){ var bt=document.getElementById("bt"); bt.onclick=function(){ var xmlhttp=new XMLHttpRequest; xmlhttp.open("POST","json"); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlhttp.send(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4) { if (xmlhttp.status==200) { var msg=document.getElementById("msg"); var redata=xmlhttp.responseText.toString(); var myjson=JSON.parse(redata); var text=""; for(var i=0;i<myjson.length;i++){ text+=myjson[i].name+":"; text+=myjson[i].age+", "; } msg.innerHTML=text; } } } }}</script></head><body><button id="bt">點我獲取JSON</button><h1 id="msg"></h1></body></html>效果圖
新聞熱點
疑難解答