Ajax利用JQuery在Struts2的實現
阿新 • • 發佈:2019-02-16
這裡有篇文章但是基本對的,有些東西需要自己寫很坑爹,感覺他吧一些東西刪去了。
1.Struts.xml必須寫上json格式和資料,不然傳什麼值
<result name="USER" type="json">
<param name="root">dataMap</param>
</result>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<!-- <constant name="struts.devMode" value="true" ></constant> -->
<constant name="struts.objectFactory.spring.autoWire" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--採用json資料格式,package的extends必須是extends="json-default"-->
<!--並且必須要用到struts2的json-lib,struts2-json-plugin包-->
<!--採用非同步提交方式,result的type="json",並且result節點值為空-->
<package name="default" namespace="/" extends="json-default">
<!--客戶端請求採用DMI(動態呼叫)-->
<action name="input_user" class="com.struts.UserAction" method="queryHello">
<!-- <result name="INPUT_USER">/input_user.jsp</result> -->
<result name="hel" type="json">
<param name="root">dataMap</param>
</result>
</action>
<action name="helloworld" class="helloworldAction">
<result name="success" >hhh.jsp</result>
</action>
<!--客戶端請求(非動態呼叫)-->
<action name="userInfo" class="com.struts.UserAction" method="loadUserInfo">
<result name="userInfo" type="json">
<param name="root">dataMap</param>
</result>
</action>
<action name="userInfoList" class="com.struts.UserAction" method="loadUserInfoList">
<result name="userInfoList" type="json"></result>
</action>
<action name="add_user" class="com.struts.UserAction" method="addUser">
<result name="ADD_SUCCESS" type="json">
<param name="root">dataMap</param>
</result>
</action>
<action name="load_allUser" class="com.struts.UserAction" method="loadAllUser">
<result name="USER" type="json">
<param name="root">dataMap</param>
</result>
</action>
<!--不採用非同步提交方式顯示-->
<action name="load_allUser_jump" class="com.struts.UserAction" method="loadAllUser">
<result name="USER">/User.jsp</result>
</action>
<action name="hello" class="com.struts.Hello" >
<result name="success">/User.jsp</result>
</action>
</package>
</struts>
</xml>
2.Action要有getset方法:
package com.struts;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.bean.Person;
import com.bean.UserDaoImp;
import com.bean.user;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImp userDaoImp=(UserDaoImp) context.getBean("userDao");
public UserDaoImp getUserDaoImp() {
return userDaoImp;
}
public void setUserDaoImp(UserDaoImp userDaoImp) {
this.userDaoImp = userDaoImp;
}
public String inputUser() {
return "INPUT_USER";
}
public String queryHello() {
this.hello = "hello world";
dataMap = new HashMap<String, Object>();
dataMap.put("userInfo", u);
dataMap.put("hello", hello);
dataMap.put("userList", userList);
// 放入一個是否操作成功的標識
dataMap.put("success", true);
return "hel";
}
public String loadUserInfo() {
u= new user();
u.setId(0);
u.setUsername("aaa");
dataMap = new HashMap<String, Object>();
dataMap.put("userInfo", u);
dataMap.put("hello", hello);
dataMap.put("userList", userList);
// 放入一個是否操作成功的標識
dataMap.put("success", true);
return "userInfo";
}
public String loadUserInfoList() {
userList = new ArrayList<user>();
user userInfo= new user();
userInfo.setId(1);
userInfo.setUsername("a1aa");
user userInfo1= new user();
userInfo.setId(2);
userInfo.setUsername("a2aa");
user userInfo2= new user();
userInfo.setId(3);
userInfo.setUsername("a3aa");
userList.add(userInfo);
userList.add(userInfo1);
userList.add(userInfo2);
// 將要返回的map物件進行json處理
dataMap = new HashMap<String, Object>();
dataMap.put("userInfo", u);
dataMap.put("hello", hello);
dataMap.put("userList", userList);
// 放入一個是否操作成功的標識
dataMap.put("success", true);
System.out.println(dataMap.toString());
return "userInfoList";
}
public String addUser() {
/*userInfo = new UserInfo();
userInfo.setId(7);
userInfo.setName("張7");*/
//如果是非同步提交json格式,必須先在js中對提交的表單form進行序列化
//var params = $("subUserForm").serialize();
System.out.println(u.toString());
userDaoImp.save(u);
System.out.println("cunle");
userList = (List<user>) userDaoImp.getUserlist();
// 將要返回的map物件進行json處理
dataMap = new HashMap<String, Object>();
dataMap.put("userInfo", u);
dataMap.put("hello", hello);
dataMap.put("userList", userList);
// 放入一個是否操作成功的標識
dataMap.put("success", true);
System.out.println(dataMap.toString());
return "ADD_SUCCESS";
}
public String loadAllUser() {
userList = (List<user>) userDaoImp.getUserlist();
// 將要返回的map物件進行json處理
dataMap = new HashMap<String, Object>();
dataMap.put("userInfo", u);
dataMap.put("hello", hello);
dataMap.put("userList", userList);
// 放入一個是否操作成功的標識
dataMap.put("success", true);
System.out.println(dataMap.toString());
return "USER";
}
/////////////////
private String hello;
public String getHello() {
return hello;
}
public void setHello(String hello) {
this.hello = hello;
}
public user getU() {
return u;
}
public void setU(user u) {
this.u = u;
}
public List<user> getUserList() {
return userList;
}
public void setUserList(List<user> userList) {
this.userList = userList;
}
private user u;
private List<user> userList;
public HashMap<String, Object> dataMap;
public HashMap<String, Object> getDataMap() {
return dataMap;
}
public void setDataMap(HashMap<String, Object> dataMap) {
this.dataMap = dataMap;
}
}
-
其他的與他的相似,另外,spring下配置struts:
加油
<constant name="struts.objectFactory.spring.autoWire" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>