错误如下:严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodException: Action[/stuInfo] does not contain specified met
hod (check logs)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:
264)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
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(Application
FilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)我的action是:public class UserInfoAction extends DispatchAction {

private UserBiz biz = new UserBizImpl();

public ActionForward doLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

UserInfoForm userInfoForm = (UserInfoForm) form;// TODO Auto-generated method stub
Admin admin = new Admin();
admin.setId(userInfoForm.getId());
admin.setUsername(userInfoForm.getUsername());
admin.setPassword(userInfoForm.getPassword());
if (biz.login(admin)) {
HttpSession session = request.getSession();
session.setAttribute("admin", admin);
return mapping.findForward("login_success");
}
return mapping.findForward("login_fail");
}

}
form如下:public class UserInfoForm extends ActionForm {

private Integer id;
private String username;
private String password;

public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
dao如下:public class UserDaoImpl implements UserDao {
public boolean isExist(Admin admin) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBGet.getConn();
String sql =  "select * from admin where username=?";
ps = conn.prepareStatement(sql);
ps.setString(1, admin.getUsername());
rs = ps.executeQuery();
if (rs.next()) {
if(admin.getPassword().equals(rs.getString("password"))) {
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBGet.closeResultSet(rs);
DBGet.closePreparedStatement(ps);
DBGet.closeConnection(conn);
} return false;
}
这种情况怎么改呢?哪里错了?请教大家

解决方案 »

  1.   

    说你方法找不到了 你就看看你跳转的时候后面的method是不是不存在在这个Action里啊 细心点咯~
      

  2.   

    在页面调用/stuInfo时method=doLogin在页面传递的时候没有写,导致在UserInfoAction中找不到这个Action方法
      

  3.   

    正解,没有找到相当的方法,看方法名称有没有存在DispatchAction 在配置文件中要配置一个parameter
      

  4.   


    配置文件应该没错啊<action
          attribute="userInfoForm"
          name="userInfoForm"
          parameter="operate"
          path="/userInfo"
          scope="request"
          type="edu.ustb.score.web.action.UserInfoAction">
          <forward name="login_fail" path="/index.jsp" />
          <forward name="login_success" path="/manage.jsp" />
        </action>我有配置parameter啊
      

  5.   

    edu.ustb.score.web.action.UserInfoAction
    这个类中有operate这个方法吗?
      

  6.   

    你要像调用edu.ustb.score.web.action.UserInfoAction中的doLogin方法。parameter="doLogin"
      

  7.   

    我知道了,我在jsp里的action写错了……应该是userInfo.do我写成了另一个了,难怪找不到方法……可是还是登陆不上,这回不报错了,但就是跳转不过去怎么回事?是连接数据库的语句写错了还是怎么了呀