我写一个用户名和密码登录之后修改密码的功能,用的是STRUTS,可是为什么报下面的错啊:
type Status reportmessage /zz/updatedescription The requested resource (/zz/update) is not available.
=======================================
这是我的修改页面:
<script type="text/javascript">
    function check_form()
    {
     if(window.document.updateform.newpassword.value!=window.document.updateform.n_password.value)
        {   
alert("两次密码输入不一样!");   
window.document.updateform.password.focus();   
                return false;   
   }   
document.getElementById("updateform").submit();

   }   
   </script>
  </head>
  
  <body>
  <form name="updateform1" id="updateform" action="update" method="post">
  原密码:<input type="password" name="oldpassword"/><br>
   新密码:<input type="password" name="newpassword"/><br>
   再次输入新密码:<input type="password" name="n_password"/><br>
   <input type="button" value="确定" onclick="check_form()"/>
   </form>
下面是配置文件:
<action-mappings>
<action name="loginForm" path="/login" attribute="loginForm"
type="login.action.LoginAction" scope="request">
<forward name="success" path="/success.jsp"
contextRelative="true">
</forward>
<forward name="fail" path="/error.jsp"
contextRelative="true">
</forward>
</action>
<action name="loginForm" path="update" attribute="loginForm"
type="update.action.UpdateAction" scope="request">
<forward name="success" path="/success.jsp"
contextRelative="true">
</forward>
</action>
</action-mappings>
ACTION:
package update.action;import java.sql.ResultSet;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import login.bean.ConnectDB;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class UpdateAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
     String psw=request.getParameter("newpassword");
     System.out.println(psw);
     String sql="update userinfo set password='"+psw+"'";
      ConnectDB db=new ConnectDB();
  ResultSet rs = db.executeQuery(sql);
 System.out.println(psw);
   return mapping.findForward("success");
}}

解决方案 »

  1.   

    看你的web.xml里配置的action
    是不是应该这样?
    <action name="loginForm" path="update.do" attribute="loginForm" 
      

  2.   

    <action name="loginForm" path="/update" attribute="loginForm" 
    页面上<form name="loginForm" id="updateform" action="/工程名/update" method="post"> 
    还有config配置的对应的<form bean>也要改下
      

  3.   

    页面上 <form name="loginForm" id="updateform" action="/工程名/update.do" method="post"> 
      

  4.   

    web.xml里
    下面的有没有?
    [code=XAML]<servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>[/code]
      

  5.   

    去掉:id="updateform"
    另,你都提交了form,怎么还用request取值?
      

  6.   

    document.loginForm.submit(); 
      

  7.   


    <form action="./update.do" method="post"> 试试,你报404就是你配置的问题,找不到你的url,仔细检查一下
      

  8.   

    楼主?
    你是要更新数据啊,怎么能执行executeQuery(sql),这是查询的方法啊。。
    改吧!!
     String sql="update userinfo set password='"+psw+"'"; 
     ConnectDB db=new ConnectDB(); 
     ResultSet rs = db.executeUpdate(sql);