服务流程
一、客户端提交请求
1. 分析扩展名 "do",在 web.xml 中查找到对应的 servlet,如下查到为 action,如果没有则直接查找相应文件。
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
|
2. 查到了 action,再在 web.xml 中查对应的 servlet 类,运行该类:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
|
3. 根据请求中的信息 "/login",在 struts-config.xml 中查找 action 及对应的类 "www.LoginAction"
<action-mappings>
<action path="/login" input="/MemberLogin.jsp" name="loginFormBean"
type="www.LoginAction">
<forward name="success" path="/LoginSuccess.jsp"/>
<forward name="failed" path="/LoginFailed.jsp"/>
</action>
</action-mappings>
|
4. 运行 www.LoginAction 类,该类应返回一个 ActionForward 对象
5. 根据 ActionForward 对象的 name 属性值 "success",查找到的路径是 "/LoginSuccess.jsp",转到第 1
步继续。
二、找到相应文件,如 "/LoginSuccess.jsp"
取得文件源码,解析服务端标签后返回 HTML 内容到客户端。
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
|
<html:form action="/login456.jsp">
<bean:message key="fields.userid"/>
<input type="text" name="userid"/>
<bean:message key="fields.password"/>
<input type="password" name="password"/>
<input type="submit" value="登陆"/>
</html:form>
<html:link page="/login456.do">
<bean:message key="link.login456"/>
</html:link>
|
1. 标签库引入
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"
prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean"%> |
2. 解析 <bean:message key="fields.userid"/> 标签
在资源文件 /WEB-INF/classes/XXXX/ApplicationResources.properties 中查找 key 。
将找到的内容替换该标签 "<b>User ID:</b>"
fields.userid=<b>User ID:</b> |
2. 解析 <html:link page="/login.do"> 标签
这个是超链接标签,显示结果是:
<a href="/login.do">...</a> |