/02_struts分发请求的过程与相关配置
按照mvc模式设计出的web层框架,其实就是一个大大的servlet,
我们可以在web.xml文件中将符合某种特征所有请求交给这个Servlet处理,
这个servlet再参照一个配置文件(struts-config.xml)将各个请求分配给不同的action去处理
根据struts提供的例子
- <form id="LogonForm" method="post" action="/struts-mailreader-1.3.10/SubmitLogon.do;
- jsessionid=FAD709E61ABC01E37FBF31FDF3D6CAAA" onsubmit="return validateLogonForm(this);">
-
查看源代码后知道提交后交给/SubmitLogon.do。
在web.xml文件中查找/SubmitLogon.do没有找到,有通配符*.do
-
- <servlet>
- <servlet-name>actionservlet-name>
- <servlet-class>org.apache.struts.action.ActionServletservlet-class>
- <init-param>
- <param-name>configparam-name>
- <param-value>/WEB-INF/struts-config.xmlparam-value>
- init-param>
- <load-on-startup>1load-on-startup>
- servlet>
-
-
- <servlet-mapping>
- <servlet-name>actionservlet-name>
- <url-pattern>*.dourl-pattern>
- servlet-mapping>
action对应一个叫ActionServlet的类;
查询struts-config.xml中/SubmitLogon;不能加.do。后缀名可以改变
-
- <action
- path="/SubmitLogon"
- type="org.apache.struts.apps.mailreader.actions.LogonAction"
- name="LogonForm"
- scope="request"
- cancellable="true"
- validate="true"
- input="Logon">
- <exception
- key="expired.password"
- type="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException"
- path="/ChangePassword.do"/>
- <forward
- name="Success"
- path="/MainMenu.do"/>
- action>
而注册页面的转到/SaveRegistration.do却找不到,有*号通配符防止膨胀
input="Input"
type="org.apache.struts.apps.mailreader.actions.{1}Action"
name="{1}Form"
scope="request">
name="Success"
path="/{1}.jsp"/>
name="Input"
path="/{1}.jsp"/>
path="/Save*"
extends="//BaseAction"
parameter="Save"
cancellable="true"
validate="true"> //是否需要校验
name="Success"
path="/MainMenu.do"/>
03_struts封装请求参数的过程与相关配置
将参数封装成formbean对象(就是一个java类),这个类的每一个属性对应一个请求参数。Formbean有一个validata的方法
原文地址:
阅读(824) | 评论(0) | 转发(0) |