S2XWorkTigerで複数NameSpaceの指定
35a36,39 > private PackageConfig nameSpacePackageConfig; > > private String nameSpace = ""; > 39a44,45 > private String ignoreClassPackage = ""; > 51a58,65 > if(this.nameSpace.length() > 0){ > nameSpacePackageConfig = configuration.getPackageConfig(nameSpace); > if(nameSpacePackageConfig == null){ > nameSpacePackageConfig = new PackageConfig(nameSpace, "/"+nameSpace, false, null); > nameSpacePackageConfig.addParent(packageConfig); > configuration.addPackageConfig(nameSpace, nameSpacePackageConfig); > } > } 64a79 > Pattern ignorePattern = Pattern.compile(ignoreClassPackage); 74a90,91 > if(!ignorePattern.matcher(className).matches()){ > if(nameSpacePackageConfig == null){ 76a94,98 > }else{ > setAction(nameSpacePackageConfig, Thread.currentThread() > .getContextClassLoader().loadClass(className)); > } > } 171a194,209 > public void setClassPackage(String classPackage) { > this.classPackage = classPackage; > } > > public void setClassPattern(String classPattern) { > this.classPattern = classPattern; > } > > public void setIgnoreClassPackage(String ignoreClassPackage) { > this.ignoreClassPackage = ignoreClassPackage; > } > > public void setNameSpace(String nameSpace) { > this.nameSpace = nameSpace; > } >
- 2. nameSpace毎に@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProviderするdiconを記載する
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <component class="com.opensymphony.xwork.config.providers.XmlConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> </component> <component class="org.seasar.xwork.annotation.AnnotationConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> <property name="classPackage">"com.example.action1"</property> <property name="nameSpace">"action1"</property> <property name="ignoreClassPackage">"com.example.action1.test.*"</property> </component> <component class="org.seasar.xwork.annotation.AnnotationConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> <property name="classPackage">"com.example.action2"</property> <property name="nameSpace">"action2"</property> </component> <component class="org.seasar.xwork.annotation.AnnotationConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> <property name="classPackage">"com.example.action3"</property> <property name="nameSpace">"action3"</property> </component> <component class="org.seasar.xwork.annotation.AnnotationConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> <property name="classPackage">"com.example.action1.test"</property> <property name="nameSpace">"action1/test"</property> </component> </components>
とりあえず動きました。