这里有篇文章但是基本对的,有些东西需要自己写很坑爹,感觉他吧一些东西删去了。
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"/>