2012-11-02 741 views
0

您好我有一个要求,我必须从struts操作类中检查一些东西,然后将结果发送回浏览器使用JS fx'中调用的ajax调用。问题是我不是能打到动作类和控制台抛出以下错误: org.apache.struts.action.RequestProcessor processActionCreate的路径/ ChangePwdAjax无操作情况下可以创建 抛出java.lang.ClassNotFoundException:test.ChangePwdAjaxAction.javaAJAX调用struts操作不起作用

该类已编译且包上下文有效test.ChangePwdAjaxAction.java

任何想法什么和在哪里做错了?

这是我写到目前为止。

JS代码

function checkError() 
{ 
var valuePassword="test"; 

var url = "/test/ChangePwdAjax.do?newPass="+valuePassword; 
     var xmlHTTP = getXMLHTTPRequest(); 


     xmlHTTP.onreadystatechange = function() { 
     handleResponse(xmlHTTP); } 

     xmlHTTP.open("GET",url,true); 

     xmlHTTP.send(); 


} 

function handleResponse(xmlHTTP){ 
    alert("handleResponse"); 
     if (xmlHTTP.readyState == 4 && xmlHTTP.status == 200) { 
      alert("handleResponse"); 
      var xmlDoc = xmlHTTP.responseXML; 

      alert(xmlDoc.documentElement.getElementsByTagName("pwdFlag")[0].text); 

     }  
    } 

function getXMLHTTPRequest(){ 
    alert("getXMLHTTPRequest"); 
     if (window.XMLHttpRequest) { 
      return new XMLHttpRequest(); 
     } 
     // IE 
     else if (window.ActiveXObject) { 
      return new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     else{ 
     alert("XMLHttpRequest is not supported!"); 
     } 
    } 

Action类代码

public class ChangePwdAjaxAction extends Action { 


    public ActionForward execute(final ActionMapping mapping, final ActionForm form, 
      final HttpServletRequest request,final HttpServletResponse response) 

    { 

     System.out.println("----IN--AJAX ACTION----------"); 
     final HttpSession session= request.getSession(false); 

     if(session==null || session.getAttribute("user_id")==null){ 

      return mapping.findForward("sessionexpired"); 
     } 


     final String user_id=(String)session.getAttribute("user_id"); 

     try{ 


      final BusinessDelegate busdel=new BusinessDelegate(user_id,session.getId()); 

      String newpwd = (String)request.getParameter("newPass"); 



      boolean b=busdel.checkOldPWd(user_id, newpwd); 
      //checking return values from bus delegate 
      response.setContentType("text/xml"); 
      PrintWriter printwriter = response.getWriter(); 

      printwriter.println("<?xml version=\"1.0\"?>"); 
      printwriter.println("<Root>"); 

      if(b) 
      { 
       System.err.println("----New password Failed--Y--------"); 
      printwriter.println("<pwdFlag>"+"Y"+"</pwdFlag>"); 
      } 
      else 
      { 
       System.out.println("----New password OK---N-------"); 
       printwriter.println("<pwdFlag>"+"N"+"</pwdFlag>"); 
      } 


      printwriter.println("</Root>"); 


      }catch(Exception e){ 
       logger.logCommon("Login Action : Login Process in Action : ", "EXCEPTION"); 
       logger.logError(e); 

      } 


     return null; 
    } 


} 

的struts-config进入

<action path="/ChangePwdAjax" type="test.ChangePwdAjaxAction.java"/> 
+0

这哎呀必须是<动作路径= “/ ChangePwdAjax” 类型= “test.ChangePwdAjaxAction”/>而不是<动作路径= “/ ChangePwdAjax” 类型=“test.ChangePwdAjaxAction.java “/>。感谢您的解决! – user1697113

回答

0

哎呀这必须是

action path="/ChangePwdAjax" type="test.ChangePwdAjaxAction"/>

而非

action path="/ChangePwdAjax" type="test.ChangePwdAjaxAction.java"/>