各位大侠:
        我在JSP页面上用自定义标签做了个导航栏。
        具体的做法是:在标签类里写数据库的操作,从数据库中读取导航条的路径,再把它组合成html代码,用JspWriter的outout.println()方法输出到页面显示。
        但是这样做,程序放在Windows环境中客户的IE浏览器可以正常访问,也就是说导航条可以正常显示出来。但是把程序放在Linux环境中运行的时候,客户IE浏览器访问的时候导航条就显示不出来!
        请问这是哪里出了问题!
        
        这个问题已经困扰了我好几个月了,请各位大侠帮忙,无尽感激!~~

解决方案 »

  1.   

    要调试啊
    根据你的描述不可能有任何人能回答出来
    不管你用什么服务器,客户端都是IE,不会是客户端的问题
    首先从客户端HTML代码入手,看看生成的HTML代码有什么问题,一点一点跟踪进去肯定会找到问题
      

  2.   

    我是本贴的作者:
          这是我的程序在Windows环境下运行输出到页面的导航栏的html代码:
    <a href="/HR/loginAction.do?action=loginOut">退出登陆</a>        &nbsp;&nbsp;&nbsp;&nbsp;我的位置:<a href="/HR/loginAction.do?action=login">人事管理系统</a> &gt; <a href="/HR/laborageMainAction.do?action=init ">薪资管理系统 </a> &gt; <a href="/HR/authorAction.do?action=init ">审核作业 </a> &gt; <a href="/HR/authorPieceSalaryAction.do?action=init ">记件工资审核 </a>      但是把程序放在Linux环境下运行,以上的html代码根本就不出来!
      

  3.   

    要后台的程序,也就是你是如何从数据库取数据、如果组织html代码、如何输出到客户端的,这些要说清楚,仅根据你上面所描述的不能判断错误的原因和位置。
      

  4.   

    我是本贴的作者:
        那我把标签类的内容发出来,这里所有的操作都都在标签类里写好的了:package com.shianco.web;
    import javax.servlet.jsp.tagext.TagSupport;
    import javax.servlet.jsp.JspException;
    import com.shianco.service.IServiceFactory;
    import com.shianco.service.ServiceFactory;
    import com.shianco.service.security.IProgService;
    import com.shianco.bean.security.impl.TProg;
    import javax.servlet.jsp.JspWriter;
    import java.io.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2005</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class ShowPathTag
        extends TagSupport {
      private static IServiceFactory serFactory;
      private static IServiceFactory myFactory;
      private static IProgService iProgService;  private static String requestName;
      private String requestURL;
      private String queryString;  public ShowPathTag() {
        serFactory = new ServiceFactory();
        myFactory = (IServiceFactory) serFactory.factory("ServiceFactorySec");
        iProgService = (IProgService) myFactory.factory("ProgTiger");
      }  public String getRequestName() {
        return requestName;
      }  public void setRequestName(String requestName) {
        this.requestName = requestName;
      }  public String getRequestURL() {
        return requestURL;
      }  public void setRequestURL(String requestURL) {
        this.requestURL = requestURL;
      }  public String getQueryString() {
        return queryString;
      }  public void setQueryString(String queryString) {
        this.queryString = queryString;
      }  public int doStartTag() throws JspException {
        String requetURL1 =this.getRequestURL().substring(this.getRequestURL().
            indexOf("HR") - 1, this.getRequestURL().length());
        String requetURL = this.getRequestURL().substring(this.getRequestURL().
            indexOf("HR") - 1, this.getRequestURL().length()) + "?" +
            this.getQueryString();
        String pathName = "";
        String path = "";
        String regName = this.getRequestName();
        TProg tprog = null;
        if (iProgService.loadTProgByProgId(regName).size() != 0) {      tprog = (TProg) iProgService.loadTProgByProgId(regName).get(0);
          pathName += tprog.getProgram();
          if(tprog.getPathAction()==null||tprog.getPathAction().equals("")){
            return SKIP_BODY;
          }
          String[] pathAction= tprog.getPathAction().split("action");      if (requetURL1.equals(pathAction[0].substring(0,pathAction[0].length()-1))&&!requetURL1.equals("/HR/loginAction.do")) {
            path +=  requetURL1+"?action=init";
          }
          else {
            path += "null";
            return SKIP_BODY;
          }
        }
        else { 
          return SKIP_BODY;
        }
        String programeNo = tprog.getProgramNo();
        int programeNoLen = programeNo.length();    if (tprog.getProgramNo() == null || tprog.getProgramNo().equals("")) { 
          return SKIP_BODY;
        }    //获取除首页和最后一页以外的路径
        while (programeNo.length() > 2) {
          programeNo = programeNo.substring(0, programeNo.length() - 2);
          TProg tprog1 = null;
          if (iProgService.loadTProgByProgNo(programeNo).size() > 0) {
            tprog1 = (TProg) iProgService.loadTProgByProgNo(programeNo).get(0);
            pathName += " >" + tprog1.getProgram();
            path += " >" + tprog1.getPathAction();
          }
        }
        //获取首页的路径
        if (iProgService.loadTProgByProgNo("00").size() > 0) {
          TProg tprog2 = null;
          tprog2 = (TProg) iProgService.loadTProgByProgNo("00").get(0);
          pathName += " >" + tprog2.getProgram();
          path += " >" + tprog2.getPathAction();    }
        String[] pathName1 = pathName.split(">");
        String[] path1 = path.split(">");
        String pathName2 = "";
        for (int i = pathName1.length - 1; i >= 0; i--) {
          if (i == pathName1.length - 1) {
            if (path1[i].equals("null ")) {
              pathName2 += "</a> &gt; " + pathName1[i];
            }
            else {
              pathName2 += "<a href=" +
                  "\"" + path1[i] + "\"" + ">" + pathName1[i]+"</a>"; //<div class="text"><a href="http://www.163.com/">网易首页</a> &gt; <a href="http://sports.163.com/">体育频道</a> &gt; <a href=http://sports.163.com/nba/>NBA</a></div>
            }
          }
          else {
            if (path1[i].equals("null ")) {
              pathName2 += "</a> &gt; " + pathName1[i];
            }
            else {
              pathName2 += " &gt; " + "<a href=" + "\"" + path1[i] + "\""  +">" + pathName1[i]+"</a>";
            }
          }
        }
        try {
          JspWriter out = pageContext.getOut();
          //<div class=" + "\"" + "text" + "\"" + ">
          pathName2 = "<a href=" + "\"" +
              "/HR/loginAction.do?action=loginOut" + "\"" + ">" + "退出登陆</a>" +
              " &nbsp;&nbsp;&nbsp;&nbsp;我的位置:" + pathName2;
          System.out.println("pathName2: "+pathName2);
          //this.pageContext.getRequest().setAttribute("path",pathName2);/*      BufferedWriter writeTo=new BufferedWriter(new FileWriter("\\home\\cvsroot\\www\\cvs\\HR\\WEB-INF\\classes\\showPath.txt", true));
          writeTo.newLine();
          writeTo.write(pathName2, 0, pathName2.length());
          writeTo.close();*/      out.println(pathName2);
        }
        catch (IOException ex) {
          ex.printStackTrace();
        }
        return SKIP_BODY;
      }
      public int doEndTag() throws JspException {
        if (false) {
          return SKIP_PAGE;
        }
        else {
          return EVAL_PAGE;
        }
      }
    }
      

  5.   

    方在linux里面的时候,打开网页时又没有出错?如果没有的话,你看网页代码,里面有没有你生成的这个导航?