原文件位置:WebRoot/admin/bg-left.jsp
            链接:<a href="userAction.do?action=2">配置文件:<action name="UserForm" path="/userAction" scope="request" type="com.action.UserAction">
   <forward name="checkUser" path="/checkUserResult.jsp" />
             ………………
   <forward name="selectUserResult" path="/admin/userSelect.jsp" />
          </action>
          注:WebRoot/checkUserResult.jsp(forward中跳转目标文件都在WebRoot目录下)
 
目标跳转文件位置:WebRoot/admin/userSelect.jsp我想实现通过原文件的链接跳到目标文件,但是配置文件中的路径path="/userAction"不能改变,因为还有很多页面用到这个路径。

解决方案 »

  1.   

    switch(action){
    是一返回 checkUser
    是二返回checkUser
    }
    很基础的问题呀!
      

  2.   

    用的struts1吗?那就不大清楚了 
      

  3.   

    你的目标路径是通过struts的配置文件写好的,那么具体跳到哪里应该在Action类中根据业务逻辑选择哪个forward。如果你仅仅是想实现一个跳转,就像超链接那样,你还不如直接写个超链接;
    但看来不是,你是要通过Action类来实现。而且还是指定的Action类指定的path,那么你可以让这个Action类继承DispatchAction而不要直接继承自Action。接下来你就会处理了吧:
      

  4.   

    继续上文:上文虽然可行,但对代码架构修改太大,既然你的href里面给了参数action=2了,在你的Action里面获取这个值后直接forward到你的目标文件
    Action类:
    String action = request.getParameter("action");
    if(action!=null && Integer.parseInt(action) == 2){    return mapping.findForward("selectUserResult");}
    ////其他你的业务逻辑
      

  5.   

    if(action!=null && Integer.parseInt(action) == 2){修改成 
       if(action!=null && action.equals("2"))比较安全些
      

  6.   

    你让Action类继承DispatchAction,在struts-config.xml中在<action >加一个属性parameter="dispatch",在你的超链里:<a href="userAction.do?action=2&dispatch=test">
    在Action类中,
    public ActionForward test(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
                            String action = request.getParameter("action"); return mapping.findForward(action);
    }
    最后在配置文件中跳转
      

  7.   

    有很多页面用到这个路径path="/userAction" 你可以用参数action中传递不同数值来判断 例如
    /userAction.do?action=1&id=29jkd 删除操作/userAction.do?action=2&name=a&date=2009 添加操作/userAction.do?action=3&key=name 查找操作
      

  8.   

    request.getParameter("action") 然后再根据action来判断不行吗?
      

  9.   

    很感谢,大家还没有理解我的意思,我是想通过
    链接:<a href="userAction.do?action=2">
    ([color=#FF0000](问题就在这个链接上,该怎么改写?)[/color
    来转向action类中,实现逻辑后跳转到目标文件进行传值,但是配置文件中的path属性都被占用,我不能更改。可是目标跳转文件在WebRoot/admin这个子目录里,只要我更改配置文件中的path="/admin/userAction" 就能解决问题,但是还有其他的文件都要转到WebRoot目录下的文件
    所以我想实现更改原文件的链接来实现正确转向。
      

  10.   

    那你这样来吧:
    <a href="userAction.do?action=2">
    修改为:
    <a href="<html:rewrite page='/userAction.do?action=2'/>">