Apache Tiles устанавливает атрибут HTML-тега, используя значение ‹put-attribute›

Я использую Apache Tiles 2.1 в качестве основы для создания шаблонов (вместе с Spring MVC).

Я хочу знать, как лучше всего установить значения атрибутов HTML из моего файла определений плиток. Например, у меня есть текстовое поле, и я хочу установить атрибут maxlength из своего определения. Я ожидал, что сработает следующее:

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

используя это определение -

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

Но похоже, что Tiles игнорирует тег ‹insertAttribute/›, если он помещен в тег HTML. В противном случае он отлично работает.

Примечание. Я попытался использовать ViewPreparer для установки значений в области запроса. Это будет работать, но это не совсем то, что я ищу. Я хотел бы легко установить значения атрибутов HTML из определения плитки.


person wr1472    schedule 22.09.2010    source источник


Ответы (2)


Чтобы установить значение атрибутов элемента html, лучше всего использовать язык выражений. Во-первых, выставьте атрибут плитки как переменную Java, используя тег useAttribute плитки. Затем используйте '${}', чтобы напечатать переменную.

Пример:

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

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

Дополнительная информация: — обновлено в июне 2014 г.: https://tiles.apache.org/2.2/framework/tiles-jsp/tlddoc/tiles/useAttribute.html - http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

person tkane2000    schedule 25.01.2013

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

I тип не определяется как «строка», он будет восприниматься как URL-адрес для включения...

person Joaquín L. Robles    schedule 08.11.2010