#jsf-2
#jsf-2
Вопрос:
Как вставить новую строку между словами для значения вспомогательного компонента и отобразить ее в пользовательском интерфейсе с использованием фреймворка JSF 2.0? Если у нас есть адрес. Название улицы должно быть в первой строке, а город и штат должны быть во второй строке. Я использую конвертер для добавления новой строки. Но оно не отображается в пользовательском интерфейсе.
Ответ №1:
JSF — это, по сути, генератор HTML-кода. Новая строка в HTML должна быть представлена <br />
тегом, а не rn
символами или чем-то еще. Вы можете просто сделать это прямо в представлении, а не смешивать детали, относящиеся к представлению, в управляемом компоненте или конвертере.
<h:outputText value="#{user.address.street} #{user.address.houseNumber}" />
<br />
<h:outputText value="#{user.address.city}, #{user.address.state}" />
Комментарии:
1. Первоначально я внес изменения в представление. Но есть ui: фрагменты для каждой страны, и код огромен. Вот почему я хочу использовать конвертер.
2. Что ж, какой бы подход к дизайну вы ни выбрали, хороший или плохой, теперь вы, по крайней мере, знаете, что следует использовать
<br />
для представления новой строки в HTML. Если вы заполните его в конце Java, вам нужно только отобразить его с<h:outputText escape="false" />
помощью . Вы должны помнить о потенциальной дыре в атаке XSS, когда хотите повторно отобразить данные, управляемые пользователем, в том же<h:outputText>
.