قالب تداخل بلاط أباتشي
سؤال
لذلك وجدت هذا: http://tiles.Apache.org/framework/tutorial/advanced/nesting-extending.html
هنا هو المثال:
<definition name="myapp.homepage" template="/layouts/classic.jsp">
<put-attribute name="title" value="Tiles tutorial homepage" />
<put-attribute name="header" value="/tiles/banner.jsp" />
<put-attribute name="menu" value="/tiles/common_menu.jsp" />
<put-attribute name="body">
<definition template="/layouts/three_rows.jsp">
<put-attribute name="one" value="/tiles/headlines.jsp" />
<put-attribute name="two" value="/tiles/topics.jsp" />
<put-attribute name="one" value="/tiles/comments.jsp" />
</definition>
</put-attribute>
<put-attribute name="footer" value="/tiles/credits.jsp" />
</definition>
لذلك قمت بتعريف هذا:
<definition name="mgmt.base.layout" extends="base.layout">
<put-attribute name="body">
<definition template="/WEB-INF/mgmt/config/mgmtBody.jsp"/>
<put-attribute name="adminLeft" value="/WEB-INF/mgmt/config/left.jsp"/>
<put-attribute name="adminRight" value="/tiles/blank.html"/>
</definition>
</put-attribute>
</definition>
لكن الجزء المضحك هو أنه حتى وثائقهم خاطئة:
12-05-2009 11:20:56,088 خطأ [رئيسي] - org.apache.commons.digester.Digester.error(Digester.java:1635):خطأ في التحليل في السطر 17 العمود 68:السمة "الاسم" مطلوبة ويجب تحديدها لنوع العنصر "التعريف".org.xml.sax.SAXParseException:السمة "الاسم" مطلوبة ويجب تحديدها لنوع العنصر "التعريف".
على الرغم من أنني حددت اسمًا له، إلا أنه لا يزال يعطي الخطأ التالي:
12-05-2009 11:35:31,818 خطأ [رئيسي] - org.apache.commons.digester.Digester.error(Digester.java:1635):خطأ تحليلي في السطر 21 العمود 19:يجب أن يتطابق محتوى نوع العنصر "put-attribute" مع "null".org.xml.sax.SAXParseException:يجب أن يتطابق محتوى نوع العنصر "put-attribute" مع "null".
ماذا يعني هذا؟!!!!
المحلول 2
يتطلب المخطط الذي تستخدمه أن تكون سمة الوضع عبارة عن عقدة طرفية، أي.لا يمكن أن تحتوي على عناصر فرعية - لذا لا يمكنك فعل ذلك.اكتشف ما إذا كان الإصدار الأحدث من المخطط (يجب أن يكون موجودًا في مستندات أو أمثلة Tiles) يسمح بقوالب التجانبات المتداخلة.
-كالي
لذا فأنا أستخدم إصدارًا قديمًا من المربعات وأستخدم مخطط الإصدار الجديد:فيما يلي بناء الجملة للمخطط المتداخل الأقدم:http://tiles.Apache.org/2.0/framework/tutorial/advanced/nesting-extending.html
نصائح أخرى
تغيير إصدار DTD إلى 2.1 حل مشكلتي!