本帖最后由 zhuiyiLH1987 于 2010-03-02 18:02:03 编辑

解决方案 »

  1.   

    这好像是struts1吧,不是struts2.
    action负责控制逻辑,建议楼主把这些读取exel的代码放到业务逻辑层,在action中再调用读取方法。
    使用相对路径的不是很好弄,像access,excel这些文件的读取,我都是提取出工作目录中class文件的路径,
    再拼出要读取文件的路径。
    把我的代码提供给楼主参考下吧,楼主看合适不合适
    public String getClassPath(){
    String path=当前类的名称.class.getClassLoader().getResource("").toString()
    .replace("file:/", "").replace("/","\\");
    try {
    path= URLDecoder.decode(path,"UTF-8");
    } catch (UnsupportedEncodingException e) {
    System.out.println(" Get classPath failed.");
    e.printStackTrace();

    return path;
    }
    比如我在myeclipse下的一个web项目的src目录下有个a.xls,则其路径为getClassPath()+a.xls
      

  2.   

    解决了,谢谢楼上哈,相对路径我是这样实现的,
    public  String getClassPath(){
            String path="";
            try {
             path=new File(getClass().getClassLoader().getResource("").toURI()).getPath();
            }catch (URISyntaxException ex) {
            
            }
            return path;

    然后
    String filePath = bdb.getClassPath()+ "\\moia44-batchjob.xls";
    这样就得到了当前机器上的一个文件路径。
    最后报错那个问题昨天写在类文件里面就对了,不能写在ACTION里面。