String url = /cwhy.jsp;
  ……
else{  // 权限到期或没有开通
  System.out.println("权限没有开通");
  request.setAttribute("read_error", "<font color = red>对不起,您没有开通该产品或权限已过期!</font>");
  forward.setPath(url);
但是却转发到index.jsp上去了。
求各位高手帮忙。

解决方案 »

  1.   

    补充:
    String url = "/cwhy.jsp";
      

  2.   

    index.jsp   和cwhy.jsp  都在  WebRoot的目录下。但是还是不出来。
      

  3.   

    你在if else中打印一下 看是否按照你的逻辑走的
      

  4.   

       先贴下你的struts.xml吧
          导致这样的原因有很多种   
           web.xml 没做任何配置   是会直接到这个页面的
           还有可能是你的struts.xml 配置文件配置好了跳转到此页面
        LZ 你先把的配置问题都贴出来吧
      

  5.   

    是不是出异常了,但是配置了struts的异常处理机制
      

  6.   

    这是我的strust-config.xml  的一部分  请高手帮助。
     <action
          attribute="selectBrowseForm"
          name="selectBrowseForm"
          path="/selectBrowse"
          scope="request"
          type="com.hexun.product.web.action.SelectBrowseAction"
          validate="false" />
      

  7.   

    没有出异常。直接跳到index.jsp页面上去了。
      

  8.   

    。没配置跳转,那就只能重定向喽。但是你的又不是重定向,跳到index.jsp正常不过了
      

  9.   

    我在Action上配置了  
    String url = "/cwhy.jsp";
    forward.setPath(url);  然后, return forward;
    但是还是跳转到  index.jsp
      

  10.   

    能把action和配置xml 代码粘出来吗
      

  11.   

    <!-- spring配置 -->
     <listener>   
    <listener-class>   
    org.springframework.web.context.ContextLoaderListener   
    </listener-class>   
    </listener>    <context-param> 
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/actionContext.xml,/WEB-INF/applicationContext.xml,/WEB-INF/daoContext.xml</param-value>
    </context-param> 
    <!-- spring配置结束 -->  <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
       <servlet>
    <servlet-name>dwr-invoker</servlet-name><!-- 指定处理DWR请求的Servlet名 -->
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><!-- 指定处理DWR请求的Servlet类名 -->
    <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>scriptCompressed</param-name><!-- 简单的压缩 -->
    <param-value>false</param-value><!-- 关闭或不压缩 -->
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- web.xml中配置DWR  结束! --><!-- 配置DWR在客户端的访问路径 -->
    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
      <!--Struts标签库配置-->
    <jsp-config>
       <taglib>
    <taglib-uri>/WEB-INF/tld/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/tld/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/tld/struts-logic</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/tld/struts-tiles</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/tld/struts-nested</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/tld/spring</taglib-uri>
    <taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
    </taglib>
    </jsp-config>
      
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!--中文编码过滤器-->
    <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.hexun.framework.filter.EncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>ignore</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <servlet-name>/*</servlet-name>
    </filter-mapping>
    <filter-mapping>   
    <filter-name>EncodingFilter</filter-name>   
    <url-pattern>*.do</url-pattern> 
    </filter-mapping> 

    </web-app>***********************************
    <action
          attribute="browseForm"
          input="/duoxuan.jsp"
          name="browseForm"
          path="/browse"
          scope="request"
          type="com.hexun.product.web.action.BrowseAction"
          validate="false">
        </action>
      

  12.   

    我说得不清,不好意思,我意思是说BrowseAction类的代码。
      

  13.   

    package com.hexun.product.web.action;import java.io.File;
    import java.util.*;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;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 com.hexun.admin.service.IPermissionInfoService;
    import com.hexun.framework.tools.date.DateUtil;
    import com.hexun.framework.tools.date.TimeUtil;
    import com.hexun.framework.tools.string.StringUtils;
    import com.hexun.model.Permission;
    import com.hexun.model.Product;
    import com.hexun.product.service.IProductInfoService;
    import com.hexun.product.web.form.SelectBrowseForm;public class SelectBrowseAction extends Action { private IPermissionInfoService permissionInfoService;
    private IProductInfoService productInfoService;

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {

    SelectBrowseForm selectBrowseForm = (SelectBrowseForm) form;
    ActionForward forward = new ActionForward();
    HttpSession session = request.getSession();
    List permissionList = new ArrayList();
    DateUtil dateUtil = new DateUtil();
    StringUtils stringUtil = new StringUtils();
    TimeUtil timeUtil = new TimeUtil();

    String reportDate = selectBrowseForm.getReportDate().trim();
    if(reportDate==""||reportDate==null||reportDate.length()<1){
    reportDate = timeUtil.getString(3);//  得到yyyy-MM-dd格式的String的当前时间
    }
    String reportDate2 = stringUtil.stringDashDateDToDateString(reportDate);//转化为没有“-”的时间格式字符串

    String productNo = selectBrowseForm.getProductNo();
    String areas = selectBrowseForm.getAreas();
    String url = selectBrowseForm.getUrl();

    String userId = (String) session.getAttribute("jgtz_userId");
    String jgtz_Passage = "Dr7kY.35*w%6Z9;iq?>]c89I3$csdl09087{{{-9H7?2/s3*-|1rtv~z&.v`i{]%#!cs4892D+<@sdc456sdfcv*,.``za4fsH^#jx)";

    //判断用户登录。
    if(session.getAttribute("jgtz_Passage")==null||!session.getAttribute("jgtz_Passage").equals(jgtz_Passage)){
    System.out.println("判断登录");
    request.setAttribute("jgtz_errers", "<font color = red>对不起,您没有登录!请登录后阅读。</font>");
    forward.setPath(url);

    }
    else{
      //验证权限
      permissionList = permissionInfoService.getPermissionByUserid(userId);
      boolean stutas = false;
      for(int i=0;i<permissionList.size();i++){
      Permission permission = (Permission) permissionList.get(i);
      if(permission.getAreas().equals(areas) && dateUtil.isSqldateAfterCur(permission.getEndTime())==true){
      stutas = true;
      break;
      }
      else{
      continue;
      }
      }

      if(stutas){//权限已 开通。
      //验证文件是否存在
      Product product = productInfoService.getProductByAreas(areas);
      String areasAdd = (String)product.getLink();
      //String areasAdd = "";  //browse.do为""
    StringBuffer fileAdd = new StringBuffer();
    fileAdd.append("/article/");
    fileAdd.append(reportDate2);
    fileAdd.append(areasAdd);
    fileAdd.append("/");
    fileAdd.append(productNo);
    fileAdd.append(".html");
    String fileAdd1 = fileAdd.toString();
    System.out.println(request.getContextPath());
    System.out.println(fileAdd1);
    System.out.println(url);
    //  "\\"与"/"都可以,都表示"\"。因为在java中"\"是特殊符号,所以用以上两种方法来代替。
    File file = new File("D:\\workspace\\investor\\WebRoot",fileAdd1); 
    if(file.exists()==true){
    System.out.println("验证文件存在!");
    forward.setPath(fileAdd1);

    }
    else{
    System.out.println("验证文件不存在!");
    request.setAttribute("read_error", "<font color = red>对不起,您查找的文件不存在,请重新输入!</font>");
    forward.setPath(url);

    }
      }
      else{  // 权限到期或没有开通
      System.out.println("权限没有开通");
      request.setAttribute("read_error", "<font color = red>对不起,您没有开通该产品或者权限已过期!</font>");
      forward.setPath(url);
      
      }
    }
    return forward;
    }


    public IPermissionInfoService getPermissionInfoService() {
    return permissionInfoService;
    }
    public void setPermissionInfoService(
    IPermissionInfoService permissionInfoService) {
    this.permissionInfoService = permissionInfoService;
    }
    public IProductInfoService getProductInfoService() {
    return productInfoService;
    }
    public void setProductInfoService(IProductInfoService productInfoService) {
    this.productInfoService = productInfoService;
    }}
      

  14.   

    这是System.out.println显示的(我输入的条件是正确的情况下)
    /investor
    /article/20100725/cwhy/000001.html
    /cwhy.jsp
    验证文件存在!
      

  15.   

    如何清空缓存??
    我清理了Tomcat中的文件过,重新发布过,重起机过。都不行。
    而且我的另个一个Action用的这个方法是可以的。
      

  16.   

    恩,或者先把tomcat服务器移除,再重新添加,有时候tomcat反映不过来!你试一下!
      

  17.   

    代码和配置 没看出问题,cwhy.jsp放在哪个目录下呢
      

  18.   

    forward.setPath(fileAdd1);  你设定的path不是这个么?
      

  19.   

    fileAdd1 是另外一个路径,但是跟index.jsp无关。他一样转发到index.jsp上去。
    所以我简单的说是  /cwhy.jsp,  但是问题都是一样的。
      

  20.   

    把tomcat的work目录下所有都清掉了?
      

  21.   

    清了。还是没用。我想重新建一个Action解决该问题
      

  22.   

    Action名字、访问路径和原来一样吗?不要和原来的一样
      

  23.   

    各位仁兄,实在对不起。小弟第一次结贴,本来都跟你们分了。但是最后点击结贴的时候,我选择了“无满意结贴”,不知道那是不给分的。对不起大家。
    再次感谢大家的热心帮助。
     我的问题解决了,是我的href=""  应该设置为"#"