Определите тег jsp, который может принимать некоторые дополнительные атрибуты, которые не объявлены в файле tld - PullRequest
0 голосов
/ 15 февраля 2012

Я хочу определить тег jsp, который может принимать некоторые дополнительные атрибуты, которые не объявлены в файле .tld.Возможно ли это?

Я хочу это, потому что я хочу определить тег <cms:img>, который будет генерировать тег html img.Пользователь может передать ему некоторые атрибуты, но я не хочу ограничивать пользователя, я надеюсь, что он может использовать его как обычный тег html img.

Например, пользователь может использовать этот тег и передать некоторые необходимыеинформация:

<cms:img id="111" />

, которая сгенерирует HTML-тег img в виде:

<img src="/show_images?id=111" />

Все, что мне нужно, это атрибут id.

Но пользователь может обработать егокак обычный тег html img и передайте ему некоторые дополнительные атрибуты, например:

<cms:img id="111" width="100px" height="100px" style="..." more attributes .. />

Я не хочу объявлять другие атрибуты в моем теге, потому что их слишком много, и пользователь может иметьих пользовательские атрибуты.

Итак, я хочу знать: могу ли я просто объявить атрибут id в теге jsp, но разрешить ему принимать все остальные необъявленные атрибуты?

1 Ответ

2 голосов
/ 15 февраля 2012

Да, это возможно.Это так называемые динамические атрибуты.См. http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html#wp89775:

динамические атрибуты (необязательно)

Указывает, поддерживает ли этот тег дополнительные атрибуты с динамическими именами.Значение идентифицирует атрибут области действия, в который следует поместить карту, содержащую имена и значения динамических атрибутов, переданных во время вызова тега.Ошибка перевода возникает, если значение динамических атрибутов директивы тега равно значению данного имени директивы переменной или значению атрибута имени директивы атрибута.

...