struts-config.xml中的controller元素
在<controller></controller>中,有标签<set-property property="" value=""/>(用于配置ActionServlet.属性描述)
property可以是:
bufferSize指定上载文件的输入缓冲的大小。该属性为可选项,默认值为4096.
className指定和元素对应的配置类。默认为org.apache.struts.config.ControllerConfig.
contentType指定响应结果的内容类型和字符编码。该属性为可选项,默认值为text/html。如果在Action和JSP网页中也设置了内容类型和字符编码,将会覆盖该设置。
locale指定是否把Locale对象保存到当前用户的Session中。默认值为false.
processorClass指定负责处理请求的Java类的完整类名。默认值为org.apache.struts.action.RequestProcessor。如果把此项设置为自定义的类,那么应该保证该类扩展了org.apache.struts.action.RequestProcessor类。
tempDir指定处理文件上传的临时工作目录。如果此项没有设置,将采用Servlet容器为Web应用分配的临时工作目录。
nochache如果为true,在响应结果中将加入特定的头参数:Pragma,Cache-Control和Expires,防止页面被存储在客户浏览器的缓存中。默认值为false.
如果应用包含多个子应用,可以在每个字应用的Struts配置文件中配置元素。这样,尽管这些子应用共享同一个ActionServlet对象,但是他们可以使用不同的RequestProcessor类。
在Struts中加入Spring框架的时候,相信大家对
<action-mapping>
<action input="/login.jsp"
name="loginActionForm"
path="/loginAction"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
validate="false">
<forward name="success" path="/success.jsp" />
<forward name="failure" path="/failure.jsp" />
</action>
</action-mapping>
这段代码 是再熟悉不过吧。不过每个Action都加这个东西。会不会觉得很累呢。有点。。现在好了。。有这个办法可以解决这个问题。
就是在struts-config.xml中的使用<contrlller>
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegationRequestProcessor"/>
</controller>
这样就可以把Struts的Action 交给Spring控制了。。
也不用在Action中写上type="org.springframework.web.struts.DelegatingActionProxy"
最后的代码样式为:
<action-mapping>
<action input="/login.jsp"
name="loginActionForm"
path="/loginAction"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
validate="false">
<forward name="success" path="/success.jsp" />
<forward name="failure" path="/failure.jsp" />
</action>
</action-mapping>
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegationRequestProcessor"/>
</controller>