我有这个非常大的基于struts的网络应用程序,我必须维护,包名称遵循这个约定(或多或少):
[app-name].[module].[module-variant].[layer].[activity].[activity-variant]
jsp文件以类似的方式排列:
Web-Content/jsp/[app-name]/[module]/[module-variant]/[activity]/[activity-variant]
所以当我必须添加另一个动作映射到struts-config.xml时我必须写 再次这个:
[app-name].[module].[module-variant].[layer]
这是前瞻性的:
/jsp/[app-name]/[module]/[module-variant]/
通过几个动作映射,struts-config.xml文件变得非常嘈杂,而且很难理解动作一目了然。
那么,有没有办法指定globaly一个包名,所以我不必为struts-config.xml中的每个动作类写一个完全限定名? 例如,在hibernate映射中,您可以指定“package”和“schema”,并使用其短名称引用表/类
顺便说一下,使用struts 1.3
答案 0 :(得分:1)
据我所知,没有办法做到这一点; Struts期望ActionForm
,Action
等的完全限定类名。
你可以做的是写一个带有全局名称和东西的“你特殊的”struts-config.xml文件,然后在构建时通过一个工具来重新生成Struts期待的实际struts-config.xml
您还可以使用XDoclet在Action类中放置一些“注释”(不是Java 5注释:D),从而在构建时完全生成struts-config.xml文件。
或者你可以使用一个很好的格式化xml并且习惯它。