平铺配置:
<definition name="*/*/*/*/*/index" extends="defaultLayout.{1}.{2}.{4}">
<put-attribute name="headerLocationPart" >
<definition name="indexLocation" template="/{1}/{2}/mkportal/s/layouts/LocationLayout.jsp">
<put-attribute name="location" value="/{1}/{2}/mkportal/s/location.jsp" />
<put-attribute name="subscriptionBtn" value="/{1}/{2}/mkportal/s/subscriptionBtn.jsp" />
<put-attribute name="indexPromo" value="/{1}/{2}/mkportal/s/indexPromo.jsp" />
</definition>
</put-attribute>
<put-attribute name="body" value="/{1}/{2}/mkportal/s/index.jsp" />
</definition>
当我要从浏览器点击网址时
问题是嵌套定义&#34; indexLocation&#34;无法解析{1},{2}参数。
错误
org.apache.tiles.impl.CannotRenderException: JSPException including path '/{1}/{2}/mkportal/s/layouts/LocationLayout.jsp'.
所以我需要解决方案来传递通配符值来解析嵌套的tile定义。
答案 0 :(得分:3)
匿名定义不能包含通配符,因为它们没有名称。
这里有两种不同的方法 (我不知道哪个对你不对,因为我不确切知道你在做什么)
1) 您可以使用cascading =“true”属性而不是其他定义,如...
<definition name="*/*/*/*/*/index" extends="defaultLayout.{1}.{2}.{4}">
<put-attribute name="headerLocationPart" template="/{1}/{2}/mkportal/s/layouts/LocationLayout.jsp"/>
<put-attribute name="location" value="/{1}/{2}/mkportal/s/location.jsp" cascade="true"/>
<put-attribute name="subscriptionBtn" value="/{1}/{2}/mkportal/s/subscriptionBtn.jsp" cascade="true"/>
<put-attribute name="indexPromo" value="/{1}/{2}/mkportal/s/indexPromo.jsp" cascade="true"/>
<put-attribute name="body" value="/{1}/{2}/mkportal/s/index.jsp" />
</definition>
2) 您可以使用命名定义,如...
<definition name="indexLocation.*.*" template="/{1}/{2}/mkportal/s/layouts/LocationLayout.jsp">
<put-attribute name="location" value="/{1}/{2}/mkportal/s/location.jsp" />
<put-attribute name="subscriptionBtn" value="/{1}/{2}/mkportal/s/subscriptionBtn.jsp" />
<put-attribute name="indexPromo" value="/{1}/{2}/mkportal/s/indexPromo.jsp" />
</definition>
<definition name="*/*/*/*/*/index" extends="defaultLayout.{1}.{2}.{4}">
<put-attribute name="headerLocationPart" value="indexLocation.{1}.{2}"/>
<put-attribute name="body" value="/{1}/{2}/mkportal/s/index.jsp" />
</definition>
参考:http://tiles.apache.org/framework/tutorial/advanced/nesting-extending.html