package com.struts.chaptertwo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

LoginActionForm loginActionForm=(LoginActionForm)form;
String username=loginActionForm.getUsername();
String password=loginActionForm.getPassword();



DataSource ds=getDataSource(request);
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String sqlStr="select * from loginuser where username='"+username+"' and password='"+password+"'";
ResultSet rs=stmt.executeQuery(sqlStr);
Boolean result=false;
if(rs.next()){

result =true;


}else{

result=false;
}
conn.close();

if(result){
return mapping.findForward("wellcome"); }else{

return mapping.findForward("wrong");
}
}
}

解决方案 »

  1.   

    确切的说就是getDataSource方法没有找到。确定方法是在本类中有?我是没有看见哦,你的父类是ACTION应该也没有。。
      

  2.   

    恩 就是在myeclipse中 便宜没通过
      

  3.   

    我在写struts
    数据池:
    <data-sources> 
    <data-source type="org.apache.commons.dbcp.BasicDataSource"> 
    <set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" /> 
    <set-property property="url" value="jdbc:odbc:driver={sql server};server=.;database=zzh;" /> 
    <set-property property="username" value="" /> 
    <set-property property="password" value="" /> 
    </data-source> 
    </data-sources>
      

  4.   


    跟这个没关系
    你根本没有getDataSource这个方法
      

  5.   

    新版的Struts的Action类中已经没有getDataSource这个方法了。
    我也碰到了这个问题。现在不知道有什么可以替代getDataSource的方法
      

  6.   

    是啊  要看你用的struts是哪个版本
    较新的版本action中已经没有getDataSource这个方法了