正常的,
如果你走了 action , 最终 action 会有一个 forward 会指向 jsp (这其中可能经过多个 forward --> action 或  servlet 处理过), 他们都会做些处理。
如果你直接 走 jsp ,那么 仅仅 jsp 中的 <%  ... %> 被调用了。

解决方案 »

  1.   

    请问humanity,我们在使用struts过程中,是提倡使用*.do还是jsp名称呢?
    使用*.do程序没问题,但是如果用户敲入网址为jsp的,这时没有经过action处理的jsp页面就很难看。
      

  2.   

    所以啊,把所有的jsp文件放入 /WEB-INF/jsp 下面吧.WEB-INF目录是天然安全的.
      

  3.   

    请问Saro把jsp文件放入 /WEB-INF/jsp 下面具体怎么做?jsp和action之间的路径层次关系是否就发生了变化,不懂,请详细说明一下。
      

  4.   

    明白了,这就达到了对用户隐藏jsp的效果,谢谢Saro!结帖给分。
      

  5.   

    jsp文件位置和action路径没关系.
    假设你有一个action 为"/test",其module为 "/",有个forward为"success",对应path为"/testResult.jsp".通过http://localhost:8080/tset.do访问,最后转发到/testResult.jsp.但这时通过http://localhost:8080/testResult.jsp访问也是可以的.
    现在只要把testResult.jsp移到/WEB-INF/jsp/testResult.jsp.把你的名为"success"的forward对应的path改为/WEB-INF/jsp/testResult.jsp就行,testResult.jsp也就无法直接访问了.嫌麻烦的话,用filter做限制也可以.