我的理解:
如果按照<html:form  method="post" action="test.do"> 这样的写法,struts会在名称为test的action中去寻找action form也就是name属性和attrib属性,然后取<html:text property="xxx" 这样的属性时就是取的action form的xxx属性。如果写了action="test.jsp" 那struts就不知道用哪个action form了。

解决方案 »

  1.   

    action="test.do" 中的test.do 是和struts-config.xml里面的<action 标签对应的,
    当提交这个form的时候,程序就会到struts-config.xml里面寻找和test同名的标签,
    这个.do一般都是在web.xml中定义的,用来统一显示这个test标识的后缀的,
    所以无论是test.do还是test.jsp在提交表单的时候都是在struts-config.xml里面寻找
    和他们name匹配的<action 标签项,而他们的后缀,在web.xml定义的什么,用的就是什么,如果不是用struts开发,就是jsp + servlet + bean那种,
    有些情况action = test.jsp 的意思就是提交到test.jsp这个页面
      

  2.   

    <action 标签在struts-config.xml是这样表示的:    <action path="/shop/index" type="org.apache.struts.beanaction.BeanAction"
                name="catalogBean" parameter="*" validate="false">
          <forward name="success" path="/catalog/Main.jsp"/>
        </action>其中的path = " xxx "    XXX可以替换为test来用.
      

  3.   

    楼主可以把 servlet 的内容,好好看下!在 web.xml 中,你可以配置 servlet 的 url-partten ,一般情况下,我们把 struts 里的 action 习惯性的带上 .do 后缀,当然,你可以带其他你喜欢的后缀,只要符合语法。然后在web.xml 中,把配置改下,就可以了!
      

  4.   

    对,在web。xml中把。do的提交都发送给了Action
    改了web.xml就行了
      

  5.   

    晕倒,,,,简单的看一下struts框架吧。
      

  6.   

    我觉得,不光是看一下struts框架吧。应该把基础先打好!
      

  7.   

    同意楼上的看法,不光是看看Struts框架,使用任何框架之前,都要有牢靠的基础保证 :)