我使用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属性值。
答案 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