.properties, хранящие длинные текстовые значения / списки / другое - PullRequest
0 голосов
/ 27 января 2012

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

Например, допустим, у меня есть это: ( назвать этот пример 1 )

<h1> the title </h1>
<p> 
    ... A very large paragraph ... <h:link value="click me" outocme="newPage"/> ... more text...
</p>

Или еще что-нибудь в этом роде: ( назвать этот пример 2 )

<h1> check this list out </h1>
<ul>
    <li> ... text here </li>
    <li> ... text here </li>
    <!-- more items -->
</ul>

Я в JSF2.0 и использование ресурса Bundeled для интернационализации моей страницы, и это прекрасно работает, поскольку есть много примеров, как это сделать.

Но то, что я хотел бы , чтобы иметь возможность сделать, это что-то вродеэто для пример 1 (msg - это моя переменная, связанная с моим пакетом)

<h1> #{msg['page.title']} </h1>
<p> #{msg['page.largeParagraph']} </p>

И пример 2 будет выглядеть так:

<h1> #{msg['page2.title']} </h1>
<ul>
    #{msg['page2.myList']}
</ul>

Есть ли способ сделать это, или я должен прибегнуть к чему-то подобному (используя пример 1 )

<h1> #{msg['page.title']} </h1>
<p> 
    #{msg['page.largeParagraph.part1']} <h:link value="#{msg['page.largeParagraph.link']} #{msg['page.largeParagraph.part2']}
</p>

То же самое будет для пример 2 где мне понадобится отдельная запись для каждого <li>.

Какова лучшая практика, когда мы делаем сомчто-нибудь в этом роде?

Спасибо за любой ввод.

Редактировать:

Мне пришло в голову, что по умолчанию экранирующие символы.Поэтому я попытался:

<p><h:outputText value="#{msg['page.paragraphWithLink']}" escape="false"/></p>

К сожалению, это не сработало для меня.

Редактировать 2:

Использование escape="false" сработало для <strong>, но определенноне работает для <h:link>.

1 Ответ

2 голосов
/ 27 января 2012

Нельзя указывать компоненты JSF в файле пакета. Они не будут анализироваться как часть дерева компонентов. Веб-браузер также не понимает теги JSF, он понимает только HTML. Простой HTML должен работать с <h:outputText escape="false">.

page.paragraphWithLink=lorem ipsum <a href="newPage.xhtml">click me</a> dolor sit amet
...