Там какое-либо серьезное основание состоит в том, чтобы использовать <rtexprvalue> ложь </rtexprvalue> в тегах JSP?

Там какое-либо серьезное основание состоит в том, чтобы не разрешить scriptlet или выражению EL быть вставленным как значение атрибута?

Скажем, у нас есть тег:

<tag>
    <name>mytag</name>
    <tag-class>org.apache.beehive.netui.tags.tree.Tree</tag-class>
    <attribute>
        <name>attr</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
        <type>boolean</type>
    </attribute>
</tag>

Каково могло быть серьезное основание для того, чтобы запретить ниже?

<my:mytag attr="${setting}" />
12
задан Andrey Adamovich 29 March 2010 в 09:08
поделиться

2 ответа

Я бы сказал, что это в основном мера обратной совместимости, как и возможность полностью отключить EL для данного JSP.

Возможно, библиотека тегов существовала до EL и использует специальный синтаксис $ {} для своих целей. Возможно, значение атрибута часто принимает значения, содержащие буквальный символ $ {}.

Без такой настройки существующий код (в библиотеке тегов или JSP) необходимо будет изменить, чтобы он продолжал работать после обновления до последней версии спецификации сервлетов.

14
ответ дан 2 December 2019 в 19:53
поделиться

Потенциально могут быть атрибуты (например, id для ссылки на сам тег), которые нельзя устанавливать во время выполнения. . Вероятно, вы могли бы придумать сценарий, в котором вы действительно хотите, чтобы $ {} означало простой текст, или где любой EL-контент оценивался вручную в каком-то настраиваемом контексте.

Но я думаю, что настоящая причина перехода - обратная совместимость. Пользовательские теги появились раньше встроенной поддержки EL в JSP; изменение определения под taglib так, чтобы $ {} теперь имел особое значение, вероятно, нарушит использование этого тега существующими шаблонами. Безопаснее использовать по умолчанию rtexprvalue-false для обратной совместимости и позволить новым библиотекам тегов для JSP 2.0 указывать, что им нужно новое поведение.

[да. что сказал Тило. : -)]

3
ответ дан 2 December 2019 в 19:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: