dwr配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting

2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>

    <allow>

        <!--需要new的類-->

       <create creator="new" javascript="findPro">

           <param name="class" value="com.scm.actions.xxxxxx" />

           <include method="findproduct" />

       </create>

<!--這里需要注意:如果使用在spring中已經配置好的類,creator設為spring,param標簽的name屬性設置為在spring配置文件中相應的beanName-->

       <create creator="spring" javascript="check">

           <param name="beanName" value="bumenAction"/> 

           <include method="checkBmmc"/>

       </create>

      

<!--如果通過暴露給js的方法,返回的是一個JavaBean,那么需要把這個類配置到drw文件中,只有這樣,在界面才可以通過js訪問-->

       <convert converter="bean" match="com.scm.domain.SysBumen" />

    </allow>

</dwr>

 

 

 

百思不得其解的是..ajax驗證完之后,一般通過驗證,就會提交表單.這時如果在action中使用實體傳輸數據.那么剛才驗證的那個數據就會丟失..

打比方說,表單中有AB兩個數據需要提交,但是A需要經過驗證,在經過ajax驗證之后,A數據雖然還存在,但是在action中沒有辦法接收到..

package com.scm.actions.sys;

 

import org.hibernate.criterion.DetachedCriteria;

import org.hibernate.criterion.Restrictions;

 

import com.scm.actions.BaseAction;

import com.scm.domain.SysBumen;

import com.scm.manager.sys.BuMenManager;

import com.util.Page;

 

/**

 * 部門處理類,CRUD...

 *

 * @author Administrator

 *

 */

public class BuMenAction extends BaseAction {

 

    private String bumenmingcheng;//look...

   

    private SysBumen buMen;

 

    private BuMenManager buMenManager;

 

    public void setBuMenManager(BuMenManager buMenManager) {

       this.buMenManager = buMenManager;

    }

 

    public void setBuMen(SysBumen buMen) {

       this.buMen = buMen;

    }

    //這里為了在通過驗證之后,能在此接收到數據,只能用字段了..如果誰有更好的辦法,請告知..

    public void setBumenmingcheng(String bumenmingcheng) {

       this.bumenmingcheng = bumenmingcheng;

    }

    /**

     * 添加一個部門

     * @return

     * @throws Exception

     */

    public String add() throws Exception {

       //通過驗證之后,還有再次給buMen的bumenmingcheng賦值,另一個屬性卻不需要,不知為何.

       buMen.setBumenmingcheng(bumenmingcheng);

       this.buMenManager.save(buMen);

       //頁面值棧中add_ok如果不為null,表示添加成功

       request.setAttribute("add_ok", "添加成功!");

       return SUCCESS;

    }

 

    /**

     * 查詢所有部門

     * @return

     * @throws Exception

     */

    public String findAll() throws Exception {

       System.out.println("=======查詢所有部門=======");

       DetachedCriteria dc = DetachedCriteria.forClass(SysBumen.class);

       Page.getResult(request, buMenManager, dc, "bumenList", Page.PAGESIZE);

       return "findall_ok";

    }

   

    /**

     * 檢查部門是否存在

     * @param bumenmingcheng

     * @return 如果存在,返回false;如果不存在,返回true

     */

    public boolean checkBmmc(String bumenmingcheng){

       boolean result = buMenManager.checkBmmc(bumenmingcheng);

       System.out.println(result?"=======不存在,可以添加=======":"存在,不能添加");

       return result;

    }

}

 

 

頁面代碼:

<script type='text/javascript'>

    function check(){

       var bumenmingcheng=document.getElementById("mingcheng").value;

         check.checkBmmc(bumenmingcheng,callBack);

    }

    var callBack=function(result){

       if(result){

           alert(document.getElementById("mingcheng").value);

           document.getElementById("add_bumen").submit();

           document.getElementById("warning").style.display="none";

       }else{

           document.getElementById("warning").style.display="block";

       }

    }

</script>

 

<form action="add_bumen" method="post" id="add_bumen">

    <table cellpadding="5" cellspacing="5">

       <tr class="addTitle">

           <td>

              部門名稱:

           </td>

           <td>

              <--如果按buMen.bumenmingcheng提交數據,在通過驗證之后, buMen.bumenmingchengnull,所以非常無奈,我在action中又加了一個叫bumenmingcheng的字段,在添加數據的時候先賦值,實屬無奈之舉...... -->

              <--<input type="text" class="textBox" name="buMen.bumenmingcheng" id="mingcheng"/>-->

              <input type="text" class="textBox" name="bumenmingcheng" id="mingcheng"/>

           </td>

       </tr>

       <tr>

           <td>

              &nbsp;&nbsp;&nbsp;&nbsp;述:

           </td>

           <td>

              <input type="text" class="textBox" name="buMen.miaoshu" />

           </td>

       </tr>

       <tr>

           <td>

              &nbsp;

           </td>

           <td align="left">

              <input type="button" value="增加" onclick="check()" />&nbsp;

              <input type="reset" value="重置" />

           </td>

       </tr>

    </table>

</form>