Hi all,
I am using the struts-plugin to integrate spring and struts.
The default value of "@struts.action" - "type" attribute is its class name
and is able to overwrite. But currently, it's not overwritten in the result
struts-config.xml.
I attached a patch for "plugin/struts/strutsconfigxml/ActionMappings.jelly"
to reflect the "type" in the result struts config.
Thanks,
- Tadaya
--
#--------------------
# Tadaya Tsuyukubo
# [EMAIL PROTECTED]
#--------------------
Index: ActionMappings.jelly
===================================================================
RCS file:
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-struts/src/main/java/org/xdoclet/plugin/struts/strutsconfigxml/ActionMappings.jelly,v
retrieving revision 1.4
diff -u -r1.4 ActionMappings.jelly
--- ActionMappings.jelly 10 Aug 2005 15:21:11 -0000 1.4
+++ ActionMappings.jelly 27 Jan 2006 17:39:53 -0000
@@ -1,40 +1,50 @@
-<j:jelly xmlns:j="jelly:core" xmlns:x="jelly:xml" xmlns:jsl="jelly:jsl">
- <action-mappings type="${plugin.getMappingtype()}">
- <j:forEach var="actionClass"
items="${plugin.getActionClasses()}">
- <j:set var="classTags"
value="${actionClass.getTags()}"/>
- <j:forEach var="classTag" items="${classTags}">
- <j:if test="${classTag.name ==
'struts.action'}">
- <j:set var="actionTag"
value="${classTag}"/>
- <action name="${actionTag.name_}"
type="${actionClass.getFullyQualifiedName()}" path="${actionTag.path}"
scope="${actionTag.scope}" input="${actionTag.input}"
- roles="${actionTag.roles}"
validate="${actionTag.validate}" parameter="${actionTag.parameter}"
unknown="${actionTag.unknown}">
- <j:set
var="isItOnTheActionContext" value="false"/>
- <j:forEach var="classTag"
items="${classTags}">
- <j:if
test="${classTag.name == 'struts.action'}">
- <j:set
var="isItOnTheActionContext" value="${classTag.name_ == actionTag.name_}"/>
- </j:if>
- <j:if
test="${isItOnTheActionContext}">
- <j:import
uri="org/xdoclet/plugin/struts/strutsconfigxml/ActionForward.jelly"
inherit="true"/>
- <j:import
uri="org/xdoclet/plugin/struts/strutsconfigxml/ActionSetProperty.jelly"
inherit="true"/>
- <j:if
test="${classTag.name == 'struts.action-exception'}">
- <j:set
var="exceptionTag" value="${classTag}"/>
-
<exception key="${exceptionTag.key}" type="${exceptionTag.type}"
className="${exceptionTag.className}" handler="${exceptionTag.handler}"
path="${exceptionTag.path}" scope="${exceptionTag.scope}"/>
- </j:if>
- </j:if>
- </j:forEach>
- </action>
- </j:if>
- </j:forEach>
- </j:forEach>
- <!-- actions merge contents... -->
- <j:if
test="${plugin.getMergeFile('struts-actions.xml').exists()}">
- <x:parse var="actions"
xml="${plugin.getMergeFile('struts-actions.xml')}"/>
- </j:if>
- <jsl:stylesheet select="$actions">
- <jsl:template match="*" trim="false">
- <jsl:copy>
- <jsl:applyTemplates/>
- </jsl:copy>
- </jsl:template>
- </jsl:stylesheet>
- </action-mappings>
-</j:jelly>
+<j:jelly xmlns:j="jelly:core" xmlns:x="jelly:xml" xmlns:jsl="jelly:jsl">
+ <action-mappings type="${plugin.getMappingtype()}">
+ <j:forEach var="actionClass"
items="${plugin.getActionClasses()}">
+ <j:set var="classTags"
value="${actionClass.getTags()}"/>
+ <j:forEach var="classTag" items="${classTags}">
+ <j:if test="${classTag.name ==
'struts.action'}">
+ <j:set var="actionTag"
value="${classTag}"/>
+
+ <j:choose>
+ <j:when test="${empty
actionTag.type}">
+ <j:set var="actionType"
value="${actionClass.getFullyQualifiedName()}" />
+ </j:when>
+ <j:otherwise>
+ <j:set var="actionType"
value="${actionTag.type}" />
+ </j:otherwise>
+ </j:choose>
+ <action name="${actionTag.name_}"
type="${actionType}" path="${actionTag.path}" scope="${actionTag.scope}"
input="${actionTag.input}"
+ roles="${actionTag.roles}"
validate="${actionTag.validate}" parameter="${actionTag.parameter}"
unknown="${actionTag.unknown}">
+
+ <j:set
var="isItOnTheActionContext" value="false"/>
+ <j:forEach var="classTag"
items="${classTags}">
+ <j:if
test="${classTag.name == 'struts.action'}">
+ <j:set
var="isItOnTheActionContext" value="${classTag.name_ == actionTag.name_}"/>
+ </j:if>
+ <j:if
test="${isItOnTheActionContext}">
+ <j:import
uri="org/xdoclet/plugin/struts/strutsconfigxml/ActionForward.jelly"
inherit="true"/>
+ <j:import
uri="org/xdoclet/plugin/struts/strutsconfigxml/ActionSetProperty.jelly"
inherit="true"/>
+ <j:if
test="${classTag.name == 'struts.action-exception'}">
+ <j:set
var="exceptionTag" value="${classTag}"/>
+
<exception key="${exceptionTag.key}" type="${exceptionTag.type}"
className="${exceptionTag.className}" handler="${exceptionTag.handler}"
path="${exceptionTag.path}" scope="${exceptionTag.scope}"/>
+ </j:if>
+ </j:if>
+ </j:forEach>
+ </action>
+ </j:if>
+ </j:forEach>
+ </j:forEach>
+ <!-- actions merge contents... -->
+ <j:if
test="${plugin.getMergeFile('struts-actions.xml').exists()}">
+ <x:parse var="actions"
xml="${plugin.getMergeFile('struts-actions.xml')}"/>
+ </j:if>
+ <jsl:stylesheet select="$actions">
+ <jsl:template match="*" trim="false">
+ <jsl:copy>
+ <jsl:applyTemplates/>
+ </jsl:copy>
+ </jsl:template>
+ </jsl:stylesheet>
+ </action-mappings>
+</j:jelly>