1.当tomcat启动的时候,struts2容器做的事情 default.properties struts2-default.xml struts2-plugin.xml struts.xml 说明:在这三种xml文件中,dtd约束是一样的,所以可以出现相同的元素,如果出现,后者覆盖前者
2.如果在配置文件中,写下如下配置: <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" /> 当web容器启动的时候就会加载bean了
3.ObjectFactory 对象工厂
4.在default.properties文件中 struts.objectFactory = spring
5.通过静态注入改变action的产生方式 1> 写一个类,该类继承ObjectFactory, 重写buildAction方法 2> 把这个类通过bean的方式放入到struts2的配置文件中 3> 通过重新指向struts.objectFactory的值来改变
示例程序:
struts.xml<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <bean name="myAction" type="com.opensymphony.xwork2.ObjectFactory" class="com.sn.action.CreatAction"></bean> <constant name="struts.objectFactory" value="myAction"></constant> <package name="aaa" namespace="/" extends="struts-default"> <action name="test" class="com.sn.action.TestAction"></action> </package> </struts>
public class CreatAction extends ObjectFactory{ @Override public Object buildAction(String actionName, String namespace, ActionConfig config, Map<String, Object> extraContext) throws Exception { System.out.println("create action"); return null; } }
时间: 2024-10-11 18:01:14