2010-09-22 134 views
3

我使用Apache Tiles 2.1作为我的模板框架(与Spring MVC一起)。Apache Tiles使用<put-attribute>设置html标记属性值

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

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

-

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

但似乎瓷砖忽略< insertAttribute/>标签如果放在一个HTML标签内。否则它工作正常。

注意:我已经尝试使用ViewPreparer来设置请求范围的值。这将工作,但不是我正在寻找。我想从Tiles定义中轻松设置HTML属性值。

回答

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

I型没有被定义为“串”将它视为一个URL包括...

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