配置文件 
    <filter> 
  <filter-name>struts2 </filter-name> 
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class> 
    </filter> 
    
<filter-mapping> 
  <filter-name>struts2 </filter-name> 
  <url-pattern>/* </url-pattern> 
</filter-mapping> <package name="loginmanage"  extends="struts-default"> 
      <action name="login" class="mah.blog.core.action.UserAction"> 
        <result name="success">WEB-INF/jsp/admin/main.jsp </result> 
      </action> 
    </package> 我进入login.jsp 页面   
在login.jsp 页面中 提交 login.action 
为什么转向的不是WEB-INF/jsp/admin/main.jsp 这个文件。。而是目录下的login.jsp文件

解决方案 »

  1.   

    <result name="success">WEB-INF/jsp/admin/main.jsp </result> 
    应该是
    <result name="success">/WEB-INF/jsp/admin/main.jsp</result>
    少了个“/”
      

  2.   

    楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
    正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!
      

  3.   

    不需要WEB-INF直接写后面的就行了
      

  4.   

    放在WEB-INF下就安全了么?记住path不一样么?而且,只需要将所有的超链接都改为*.do不就好了么不一样可以掩饰么。永远记住一点,只需要对class文件加密,对于什么jsp页面,放在拿都一样。除非你还在jsp页面中写logic,那我没话说,因为我不喜欢耦合的东西。
      

  5.   


    呵呵 呈现层页面不放在WEB-INF目录下 我即可以通知.action或.do(struts1)来访问呈现层(不一定是jsp,这里假设就是JSP),也可以通过浏览器去直接方面呈现层页面
    正常的请求模式都是通过Action进行控制分发到各个呈现层页面,但是如果直接通过url访问页面,会破坏这个流程,那么你的后台会报一大堆Exception,恐怕最多的就是NullPointerException也可能是个人习惯问题,但是我还是喜欢把页面放在WEB-INF目录或子目录下!