失去焦点时去数据库查询此人是否存在
页面代码:<label> 所属业务员: <input type="text" size="30" name="txtsalesmanName" id="txtsalesmanName" onblur="checksalesman(this.value)"  value="<%=user.getSalesmanName() %>"/>
       </label>
       <span id="span_salesmanName"></span></li>
js代码:function checksalesman(salesman)
{
var span_salesmanName=document.getElementById("span_salesmanName");
var salesmann;
var xmlhttp;
try
{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
alert(xmlhttp.status);
if (xmlhttp.status==200){
var data=xmlhttp.responseText;
salesman_result(data);
}
else{
span_salesmanName.innerHTML="业务员校验失败,请联系管理员";
}
}
else{
span_salesmanName.innerHTML="<img src='images/loading.gif'/> 正在进行业务员校验证...";
}
}
//var salesmann=encodeURIComponent(salesman);
//var salesmannnn=encodeURI(encodeURI(salesman));
// salesmannnn=encodeURI(salesman);
//alert(salesmannnn);
alert(salesman);
xmlhttp.open("post", "salesman.do?op=checkSalesman", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
// xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");
xmlhttp.send("salesman="+salesman);
}
function salesman_result(data)
{
var span_salesmanName=document.getElementById("span_salesmanName");
if(data==1)
{
span_salesmanName.innerHTML='<img src="images/yesok.gif"/>';
isSalesMan = true;
}
else
{
span_salesmanName.innerHTML='<img src="images/yesno.gif"/>';
isSalesMan = false;
}
}错误报告:严重: Method invocation failed.
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.purifier.filter.EncodingFilter.doFilter(EncodingFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2011-11-29 11:03:51 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: Cannot invoke com.purifier.form.SalesmanForm.setSalesman - argument type mismatch
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.purifier.filter.EncodingFilter.doFilter(EncodingFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    xmlhttp.open("post", "salesman.do?op=checkSalesman", true);
    这里面传的参数  op=checkSalesman ,这个checkSalesman是啥啊,你既然想验证txtsalesmanName是否存在,直接将这个txtsalesmanName值 传到后台验证,就OK了。下次贴代码时  最后带格式啊,这样很不好看。
      

  2.   

    SalesmanForm.setSalesman这个方法的参数不匹配
      

  3.   

    回复一楼 checkSalesman 是action中的一个验证方法,代码如下  public ActionForward checkSalesman(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
    {
    try {
    // response.setContentType("application/x-json");
    PrintWriter out=response.getWriter();
    //获取用户输入的业务员姓名
    String salesman=new String(request.getParameter("salesman"));
    salesman=java.net.URLDecoder.decode(salesman, "UTF-8");
    System.out.println(salesman+"业务员名称");
    //调用验证方法
    boolean result=salesmanDao.getSalesmanName(salesman);
    if (result) {
    out.print("1");
    }else {
    out.print("0");
    }
    } catch (Exception e) {
    // TODO: handle exception
    System.out.println("查询业务员checSalesman----失败"+e.getMessage());
    }
    return null;
    }
      

  4.   


    这个是一个form 我直接在form里面 getter  setter的一个实体类  应该不会存在这种情况
      

  5.   

    把 整个 form 都贴出来  看错误提示,就是 form里的setSalesman类型有问题。
      

  6.   


    public class SalesmanForm extends ActionForm {
    /*
     * Generated Methods
     */
    private Salesman salesman=new Salesman();
    /** 
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    // TODO Auto-generated method stub
    return null;
    } /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // TODO Auto-generated method stub
    } public Salesman getSalesman() {
    return salesman;
    } public void setSalesman(Salesman salesman) {
    this.salesman = salesman;
    }
    }