使用ForwardAction转发到一个Servlet组件,实现遗留系统中的Servlet组件重用
Struts中的ForwardAction可以实现转发功能,它可以转发到一个Jsp页面,一个Action对象,或者是Servlet组件。基于此,如果你的系统要使用之前系统中的遗留代码,比如Servlet组件,那么就可以通过ForwardAction实现转发功能,通过Servlet来处理request。实现组件的重用。具体的配置如下:
假设要使用的Servlet为:
com.myapp.struts.forwardaction.ForwardActionToServlet
首先,在web.xml文件中注册此Servlet
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<servlet>
<servlet-name>ForwardActionServlet</servlet-name>
<servlet-class>com.myapp.struts.forwardaction.ForwardActionToServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ForwardActionServlet</servlet-name>
<url-pattern>/servlet/ForwardActionServlet</url-pattern>
</servlet-mapping>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
接着在Struts配置文件中配置如下Action
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<!--action path="/toServlet.tos"
type="org.apache.struts.actions.ForwardAction"
scope="request"
parameter="/servlet/ForwardActionServlet"
/>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
此处的parameter属性是关键,将它的值设置为web.xml中定义的<url-pattern>/servlet/ForwardActionServlet</url-pattern>
中的执行路径。
新建一个jsp测试页面test.jsp
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<html:link action="/toServlet">toServlet</html:link>
</body>
</html>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
点击页面中的链接后,com.myapp.struts.forwardaction.ForwardActionToServlet会被执行,以处理request,response。这样就可以加入自己的处理代码。