1,你这个公共类不用继承Action,单独写一个就可以了,用的时候import
2,用javascript可以实现,主要是form.actiom不一样就可以了

解决方案 »

  1.   

    不继承不行呀,如果不继承servlet就会出错
    cannot resolve symbol: variable servlet in class com.zzcq.stationsrv.util.CommonObject at line 12 (12:26)
    我导入这个包import javax.servlet.http.*;
    问题依然存在。
    2、你说用javascript实现,我主要是想用struts结构实现
      

  2.   

    你可以用STRUTS本身的数据库连接池,你可以在struts.xml中配置这个连接池,
    然后在Action中用这个方法调用数据源。
    datasource=servlet.findDatasource("JNDIname");
      

  3.   

    1。这个类不用继承Action类啊!
    2。可以向execute传参数,点击不同的按钮传不同的参数!
    在execute中就可以判断:
      
      if(传参数.equals("button1"))
          {      try{
           ......
            actionForward = mapping.findForward("success1");       }catch(Exception e){
            System.out.println("......"+e);
            request.setAttribute("errors",e.getMessage());
            actionForward=mapping.findForward("fail");
           }
          }
      if(传参数.equals("button2"))
          {      try{
           ......
            actionForward = mapping.findForward("success2");       }catch(Exception e){
            System.out.println("......"+e);
            request.setAttribute("errors",e.getMessage());
            actionForward=mapping.findForward("fail");
           }
          }再return (actionForward);
    在配置文件中这样写<forward name="success1" path="1.jsp"/>
       <forward name="success2" path="2.jsp"/>
    就可以了!
      

  4.   

    楼上这位兄弟,如果不继承action的话,她始终会报错误,说servlet变量未定义。
      

  5.   

    servlet.findDataSource("stationsrv");
    如果不出错,
    1,servlet肯定是一个类,而findDataSource()肯定是一个static方法。在一个单独的类中写getConnection()方法,只要引入servlet这个类就行了。
    2,servlet是一个变量,可能是上面实例的。(可你没有贴出来啊)
      

  6.   

    DataSource ds = servlet.findDataSource("stationsrv");
    conn = ds.getConnection();
    这里servlet是ActionServlet类的实例,在ActionServlet实例化Action类之后,
    该实例传递给Action类。
    所以上面这两句话应写在你自己的Action类中!
      

  7.   

    非常感谢上面的兄弟。
    To: 风雨情缘 and  xmpp(火狐狸) 两位师兄:CommonObject.java源文件:
    package com.zzcq.stationsrv.util;import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import javax.sql.DataSource;public class CommonObject extends Action {  protected Connection conn;
      public  Connection getConnection(){
        try{
             DataSource ds = servlet.findDataSource("stationsrv");
             conn = ds.getConnection();
             if(conn!=null)
               return conn;
             else
               System.out.println("null");
         }catch(SQLException ex){
          System.out.println(" Database Connection is failure:" + ex.getMessage());
        }
         return null;
      }
    }
    注:上面这段代码是我连接数据库写的。
    /******************************************我想把上面连接数据库的文件放在一个公共的包中,以后直接调用getConnection()方法,现在我重新建了一个包,
    例如:
    package com.zzcq.stationsrv.login;import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import javax.sql.DataSource;
    import java.sql.*;
    import java.sql.SQLException;
    import com.zzcq.stationsrv.util.*;
    public class LoginAction extends Action {
      
      public boolean Login(LoginActionForm form) throws Exception {
    }
    }
    我现在的疑点就是:1、我如何在Login()中调用getConnection()这个方法。
                     2、如果按照fengcau(风雨情缘)兄弟说的,那就相当于在每个Action中
                     都会去连接数据库,这样不是很好把。