#struts2 #html-entities #ognl
#struts2 #html-сущности #ognl
Вопрос:
У меня есть следующие вложенные теги struts 2 в jsp. Это внутри другого итератора, который, в свою очередь, находится внутри тега td для html-таблицы.
<s:property value="#rule.value" />
<s:set var="blanks" value="''" />
<s:iterator value="(#rule.key.length()).{ #this }">
<s:set var="blanks" value="%{#blanks 'amp;nbsp;'}" />
</s:iterator>
<s:property value="#blanks" />
Общая цель состоит в том, чтобы отобразить все значения свойств s:, которые вы видите в одной строке в браузере. Для некоторых тегов (например, textfield) вы можете изменить атрибут theme, и он не пытается напечатать все в отдельной строке. Но в любом случае, мне нужно, чтобы все было в одной строке в теге итератора.
Итак, что я пытаюсь здесь сделать, так это создать строку из nbsp. Длина такой строки будет меняться каждый раз, когда этот фрагмент кода повторяется. Когда я запускаю это, итератор выполняет правильное количество раз, но мой результат amp;nbsp;amp;nbsp;amp;nbsp;
….. столько раз, сколько повторяется цикл. Однако мне нужен вывод html-пробела для каждого nbsp. В конечном счете, мне нужно, чтобы в td было определенное количество символов, чтобы эта таблица и отдельная таблица синхронизировались при форматировании экрана.
Ответ №1:
Вы забыли escapeHtml
.
<s:property value="#blanks" escapeHtml="false" />
или просто
${blanks}
escapeHtml
/ escape
(Устарел) : по умолчанию true
Комментарии:
1. Потратил так много времени на просмотр тега set и OGNL, что я пренебрег просмотром выходного тега property. Но это прямо там, в struts.apache.org/2.2.3/docs/property.html : escape/escapeHTML является атрибутом property. Хорошая работа, спасибо
Ответ №2:
Я не очень много знаю о тегах JSP, но я сталкиваюсь с ними время от времени… Вы когда-нибудь видели escapeXml="false"
? (используется в теге c:out)
Комментарии:
1. Я буду смотреть в этом направлении. Конечно, выражения EL не могут встречаться в тегах struts 2 (это было бы решением, если бы они могли), но я поищу эквивалентную вещь в OGNL.
Ответ №3:
Просто используйте amp;nbsp;
вместо amp;nbsp
для упрощения форматирования и указания пробелов в любом месте, где вы хотите, в том числе и в struts framework, и избегая слишком больших сложностей.