<controller>主要用于扩展RequestProcessor(请求处理器类),实现预处理功能所用。在Struts1.0版本时,只有5个元素,并不<controller>时,程序员通过扩展其ActionServlet来实现预处理功能。自从1.1版本以后,Struts提供了实现预处理的机制。我们先看一下关系样例:
MyRequestProcessor就是我们需要扩展的类,在其中重构父类process()方法中的第六个方法。processProcessor()方法。
下面的controller元素中我写入了三个比较有用的参数,并一一解释:
1.contentType属性,指定响应结果的内容类型和字符编码。当ActionServlet判断此属性存在时,由RequestProcessor类中的第四个方法实现。详见书101页
2.processorClass指定扩展的类。
3.nocache属性,页面不缓存。在RequestProcessor类中以代码的形式实现如下:
引用内容
ActionServlet->RequestProcessor->MyRequestProcessor->Action
MyRequestProcessor就是我们需要扩展的类,在其中重构父类process()方法中的第六个方法。processProcessor()方法。
下面的controller元素中我写入了三个比较有用的参数,并一一解释:
引用内容
<controller contentType="text/html;charset=UTF-8" processorClass="order.MyProRequestProcessor" nocache="true" />
1.contentType属性,指定响应结果的内容类型和字符编码。当ActionServlet判断此属性存在时,由RequestProcessor类中的第四个方法实现。详见书101页
2.processorClass指定扩展的类。
3.nocache属性,页面不缓存。在RequestProcessor类中以代码的形式实现如下:
引用内容
response.setHeader("Pragma","No-cache");
Tags: 预处理
复制内容到剪贴板 程序代码
<%@ page contentType="text/html; charset=GBK" import="nformtest.form.UserForm" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<body>
<%UserForm form=(UserForm)request.getAttribute("userForm");%>
<%=form.getUservo().getName() %>
等同于
<bean:write name="userForm" property="uservo.name"/>
</body>
</html>