Apache Tiles使用<put-attribute> value </put-attribute>设置html标记属性

时间:2010-09-22 15:20:55

标签: apache tiles2

我使用Apache Tiles 2.1作为我的模板框架(以及Spring MVC)。

我想知道如何最好地从我的Tiles定义文件中设置HTML属性值。例如,我有一个文本框,希望能够在我的定义中设置maxlength属性。我希望以下工作 -

<input id="nameField" type="text"
    maxlength="<tiles:insertAttribute name='maxlength' />" />

使用此定义 -

<definition name="sprint-goal" >
       <put-attribute name="maxlength" value="100" />
</definition>

但似乎Tiles忽略了&lt; insertAttribute /&gt;标记(如果放在HTML标记中)。否则它的工作正常。

注意:我尝试使用ViewPreparer设置请求范围的值。这将有效,但并不完全是我想要的。我想从Tiles定义中轻松设置HTML属性值。

2 个答案:

答案 0 :(得分:2)

要设置html元素属性的值,最好的办法是使用表达式语言。首先,使用tiles useAttribute标记将tile属性公开为java变量。然后使用'$ {}'打印变量。

示例:

<tiles:useAttribute name="myMaxLength" id="maxLength" />

<input id="nameField" type="text" maxlength="${myMaxLength}" />

更多信息:   - 2014年6月更新:https://tiles.apache.org/2.2/framework/tiles-jsp/tlddoc/tiles/useAttribute.html   - http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

答案 1 :(得分:0)

 <put-attribute name="maxlength" value="100" type="string" />

我的类型未被定义为“字符串”,它将被视为包含...的URL