« Return to Thread: http://struts.apache.org/dtds/struts-2.0.dtd needs to be updated

http://struts.apache.org/dtds/struts-2.0.dtd needs to be updated

by matt.payne :: Rate this Message:

Reply to Author | View in Thread

I believe struts 2.0.9 and up allow use of the tag "default-class-ref".  However the dtd reference online is old and still is missing this tag.

I'd like to take advantage of this tag using configuration inheritance to create abstract crud templates for crud actions.  

<package name="Abstract-crud" extends="struts-default" abstract="true">
  <!--  edit is often used as the create/view -->
                <action name="edit" >
                        <result name="input" type="velocity">edit.vm</result>
                        <result name="success" type="velocity">edit.vm</result>
                        <result name="error" type="velocity">edit.vm</result>
                </action>
                <action name="save" >
                        <result name="input" type="velocity">edit.vm</result>
                        <result name="success" type="chain">list</result>
                        <result name="error" type="velocity">edit.vm</result>
                        <result name="cancel" type="redirect">list.action</result>
                </action>
                <action name="list" method="list">
                        <result name="success" type="redirectAction">list</result>
                </action>
                <action name="delete" method="delete">
                        <result name="success" type="redirectAction">list</result>
                </action>

        </package>
       
       
        <package name="Example" extends="Abstract-crud" namespace="/example">
                 <default-class-ref class="org.ExampleAction" />
        </package>

        <package name="Example2" extends="Abstract-crud" namespace="/example2">
                <default-class-ref class="org.Example2Action" />
                <action name="override" class="org.Example2Action" method="override">
                        <result name="success" type="velocity">somethingelse.vm</result>
                </action>
        </package>

        <package name="SubItem" extends="Abstract-crud" namespace="/example2/subItem">
                <default-class-ref class="org.SubItemAction" />
        </package>

Despite what Don Brown originally said about this tag, if it can be used in this mode, I believe its even more useful than "default-action-ref"  
 
Matt Payne

 « Return to Thread: http://struts.apache.org/dtds/struts-2.0.dtd needs to be updated