Вставить новую строку в базовое значение строки компонента

#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> .