Ajax利用JQuery在Struts2的實現

這裏有篇文章但是基本對的,有些東西需要自己寫很坑爹,感覺他吧一些東西刪去了。


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"/>
加油

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章