1. 程式人生 > >Ajax利用JQuery在Struts2的實現

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