我是新来的支柱和据我知道。做扩展导致tomcat的调用操作servlet和操作Servlet具有调用特定的动作类资源的过程对象
但让我们假设有一个JSP页面
first.jsp
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="s" %>
<s:form action="myform">...
当我们提交此表
在struts.config.xml动作映射被调用,它从那里进行挑选:
<action input="/first.jsp" name="actionformbean" path="/myform" scope="session"
type="actionclass"/>
每当HTTP://....myform.do遇到,告知操作servlet的资源处理对象调用actionclass
但是如何动作映射关系到servlet映射(如。做在这里给出URL模式?)
我很困惑这个。做,那它是如何添加到URL :(
帮助PLZ谢谢!
Struts的标准操作servlet映射在web.xml部署描述符中定义。 它是这样的:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
该servlet-名先前在部署描述符中定义的:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
...
</init-param>
<load-on-startup>2</load-on-startup>
...
</servlet>
URL模式结合结尾的所有URL .do
的动作的Servlet。 操作servlet又代表所有调用的负责任的行动。
现在,也有像你提到的一个动作映射:
<action input="/first.jsp" name="actionformbean" path="/myform" scope="session"
type="actionclass"/>
动作映射具有指定其URL路径。 由于Struts的已经“知道”它叫,否则动作映射本身不能被执行的URL不需要。做后缀。 一旦执行指定的操作,它静静地追加一个。做后缀,因为只有那些后缀将匹配URL - 否则,下一个请求会丢失。
“感谢您的答复,但你写的是url-pattern的结合与。做结局操作servlet的所有URL。我仍然感到困惑的。做将如何被添加到URL”
本.do
默认情况下自动附加由Struts框架结构(希望这是被做ActionServlet
本身)。 如果要更改扩展名(比如名为.abc),那么你就应该相应地修改动作值( action="actionsomthing.abcd"
)。
更正赞赏