1

瓷砖配置:


<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>

当我要从浏览器访问 URL 时

http://localhost:8080/etisalat/wap/mkportal/s/index.wfv

问题是嵌套定义“indexLocation”没有解析 {1},{2} 参数。


错误是


org.apache.tiles.impl.CannotRenderException: JSPException including path '/{1}/{2}/mkportal/s/layouts/LocationLayout.jsp'.

所以我需要解决方案来传递通配符值来解析嵌套的平铺定义。

4

1 回答 1

3

匿名定义不能有通配符,因为它们没有名称。

您可以在这里采用两种不同的方法(我不知道哪种方法适合您,因为我不知道您在做什么)

1)您可以使用 cascading="true" 属性而不是附加定义,例如...</p>

<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)您可以使用命名定义,例如...</p>

    <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

于 2015-02-06T21:25:29.840 回答