Action代码如下:
package com.kolezen.action.projectmgr;
import java.util.List;import com.door.db.IDoorDbContext;
import com.door.pr.action.DoorContext;
import com.door.pr.form.DoorForm;
import com.kolezen.action.OAAction;
import com.kolezen.bl.projectmgr.ProjectTaskCrtBl;
import com.kolezen.form.projectmgr.ProjectTaskCrtForm;
import com.kolezen.record.projectmgr.ProjectTaskCrtRecord;public class ProjectTaskCrtAction extends OAAction{

public String init(DoorForm form, DoorContext context) {
 log.info("ProjectTaskCrtAction  init  方法执行开始。");

ProjectTaskCrtForm projectTaskCrtForm = (ProjectTaskCrtForm)form;
IDoorDbContext idc = context.getDbContext();
ProjectTaskCrtBl projectTaskCrtBl = new ProjectTaskCrtBl(idc);
ProjectTaskCrtRecord projectTaskCrtRecord =new ProjectTaskCrtRecord();

//在Action获取传递过来的值,并在传递过来的值存入record缓存中
projectTaskCrtRecord.setProject_ID((String) context.getRequestData("prjid"));

List list = projectTaskCrtBl.doSelectHead(projectTaskCrtRecord);
List list1 = projectTaskCrtBl.doSelectBody(projectTaskCrtRecord);
projectTaskCrtForm.setUserDataList(list);
projectTaskCrtForm.setUserDataList1(list1);
log.info("ProjectTaskCrtAction  init  方法执行结束。"); return "init";
}}

解决方案 »

  1.   

    ProjectTaskCrtBl中的代码如下:package com.kolezen.bl.projectmgr;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.List;import com.door.ap.BusinessLogicBean;
    import com.door.db.DBCreateException;
    import com.door.db.DataAccess;
    import com.door.db.IDoorDbContext;import com.kolezen.record.projectmgr.ProjectTaskCrtRecord;public class ProjectTaskCrtBl extends BusinessLogicBean{ /**
     * @param arg0
     */
    public ProjectTaskCrtBl(IDoorDbContext dbCtx) {
    super(dbCtx);
    } /**
     * @param projectTaskCrtRecord
     * @return
     */
    public List doSelectHead(ProjectTaskCrtRecord wrc) {
    List list = null;
    log.info("doSelectHead 方法开始");
    DataAccess da = null;
    Connection conn = null;
    //检索task_info表中有无符合条件的记录
    List wInfoTodayList = null;
    try {
    da = new DataAccess();
    conn = connectDB();
      list = PrjectCommonBl.selectDataOfTask_info1(da, conn, wrc);
       return list;
    } catch (SQLException e) {
    e.printStackTrace();
    log.info("doSelectHead 方法结束");
    } catch (DBCreateException e) {
    e.printStackTrace(); } finally {
    closeDB();
    }
    log.info("doSelectHead 方法结束");
    return list;
    } /**
     * @param projectTaskCrtRecord
     * @return
     */
    public List doSelectBody(ProjectTaskCrtRecord wrc) {
    List list = null;
    log.info("doSelectBody 方法开始");
    DataAccess da = null;
    Connection conn = null;
    //检索task_info表中有无符合条件的记录
    List wInfoTodayList = null;
    try {
    da = new DataAccess();
    conn = connectDB();
       list = PrjectCommonBl.selectDataOfTask_info2(da, conn, wrc);
       return list;
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (DBCreateException e) {
    e.printStackTrace(); } finally {
    closeDB();
    }
    log.info("doSelectBody 方法结束");
    return list;
    }
    }
      

  2.   

    commonbl中的代码如下:/**
     * @param da
     * @param conn
     * @param wrc
     * @return
     */
    public static List selectDataOfTask_info1(DataAccess da, Connection conn, ProjectTaskCrtRecord projectTaskCrtRecord)
    throws DBCreateException, SQLException {       
    StringBuffer sqlClause = new StringBuffer();
    List list = null;
    sqlClause
    .append("SELECT distinct PROJECT_ID,P_NAME, EMPLOYEE_ID FROM PROJECT_INFO WHERE PROJECT_ID=")
    .append("'")
    .append(projectTaskCrtRecord.getProject_ID())
    .append("'");
    try{
     list = da.read(conn, sqlClause.toString(), ProjectTaskCrtRecord.class);
    return list; 
    }
    catch(Exception e){e.printStackTrace();}
    return list; 
    }


    /**
     * @param da
     * @param conn
     * @param wrc
     * @return
     */
    public static List selectDataOfTask_info2(DataAccess da, Connection conn, ProjectTaskCrtRecord projectTaskCrtRecord) 
    throws DBCreateException, SQLException{

    System.out.println("~~~~~~~~~~~~"+"selectDataOfTask_info2开始执行");

    StringBuffer sqlClause = new StringBuffer();
    List list = null;
    sqlClause
    .append("SELECT  PROJECT_ID, TASK_ID,TASK_NAME,STAGE_ID FROM TASK_INFO WHERE PROJECT_ID=")
    .append("'")
    .append(projectTaskCrtRecord.getProject_ID())
    .append("'");
    try{
    list = da.read(conn, sqlClause.toString(), ProjectTaskCrtRecord.class);
    return list; 
    }
    catch(Exception e){e.printStackTrace();}
    System.out.println("~~~~~~~~~~~~"+"selectDataOfTask_info2执行结束");
    return list; 
    }
      

  3.   

    1、配置是否正确,最好是用JavaWebStudio中的"Struts文件向导"来生成文件,所有的配置最自动完成了,减少出错的可能性。
    2、先把上述代码简化到最小再试试,直到没有问题,再边试边COPY回上述代码。
    3、运行地址用ProjectTaskOptAction.do,不用ProjectTaskOptAction或ProjectTaskOptAction.class