看到一些配置文件里写 *.do 表示匹配全部action请求~
但是请求不是jsp页面里的action吗?

解决方案 »

  1.   

    可以再struts.xml里加上这段代码,value的值可以改的,默认是action<!-- 该属性指定需要Struts处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
        <constant name="struts.action.extension" value="do"/>
    可以再struts.xml里加上
      

  2.   

    你的请求action里是XXX.do。就用*.do过滤。是XXX.action。就用*.action过滤。就是配了什么样的规则,只有符合规则,才能传入相应的过滤器或者servlet等等。自己试试,再在网上找找资料看看。每个网站都有自己的风格。你也可以用其他后缀的?
      

  3.   

    struts框架中的配置文件就是这么写。
    你仔细看看.do全都只是ActionServlet,而不是你写的Action,所有的.do指向的都是ActionServlet,这才就起到了控制器的作用啊
      

  4.   

    web.xml里有配置,  <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      

  5.   

    web.xml里有配置,<servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>//这里如果你改成别的*.jsdo
      </servlet-mapping>
    前面的.DO 跟着变为.jsdo
      

  6.   

    .do就是为了让web.xml在拦截页面请求时知道这是一个需用struts处理的请求,web.xml会自动将请求转发给相应的action而不是servlet
      

  7.   

    说的白点,*.do就是个暗号。密探们接头不都是要个暗号么,如果信息泄露出去可就不是追究责任的问题喽,直接死翘翘了,所以人家都会有暗号,对了我就让你进来,不多赶快跑吧~~.do的道理一样,如果请求是以.do结尾的那服务器就接受你并处理你的请求,如果不对那对不起门都没有。当然你在页面的form中有时候看到的只是action="action"这样的写法,其实WEB容器会为你自动加载上.do,至于细致的原因恐怕只有设计者自己才能说明白吧,不用了解太深,这个说起来也比较麻烦,而且了解不了解对你编程并没有影响。但是提醒你如果你想传参数的话一定要加.do不然会报错,比如:action="action.do?id=1&password=1"这里具体传参的方法呢与HTTP的GET方式的URL传参用法一样(其实你填的action.do?id=1&passsword=1就是个url),另外action的请求不但可以用FORM提交也可以用A:LINK提交的,原因如上(因为他就是URL)。
      

  8.   

    在xml里配置,有来过滤请求用的。
      

  9.   

    LZ详细地看下Struts,
    看完就知道了,呵呵
      

  10.   

    jsp请求的*.do是xml文件里面配置好的action,建议lz看一下Struts的基础