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>