powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF и Duplicate component ID
1 сообщений из 1, страница 1 из 1
JSF и Duplicate component ID
    #33231903
s_v_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу c использованием jsf веб-приложение. Структура страниц примерно такая:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
contents.jsp:

<f:view>
    -- Some contents --
    <jsp:include page="${contents.editorJsp}"/>
    -- Some contents --
</f:view>

editor1.jsp:

<f:subview id="editor1">
    -- Some contents --
</f:subview>

editor2.jsp:

<f:subview id="editor2">
    -- Some contents --
</f:subview>

Здесь, из Java-Bean "contents" идет получение имени нужной jsp страницы ("editor1.jsp" или "editor2.jsp") - в результате чего содержимое основной страницы (contents.jsp) может варьироваться.

Так вот, внутри <f:subview id="..."> нельзя мешать jsf-теги с html-текстом, то есть вот так не напишешь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<f:subview id="editor2">
    <div>
         <h:commandLink action="...">
         ...
         </h:commandLink>
    </div>
</f:subview>
Приходится писать вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<f:subview id="editor2">
    <f:verbatim><div></f:verbatim>
         <h:commandLink action="...">
         ...
         </h:commandLink>
    <f:verbatim></div></f:verbatim>
</f:subview>
То есть весь HTML код обрамлять в тег <f:verbatim>. Так как это очень не удобно, было решено создать свои custom jsf теги, например <x:div>, или <x:table> итп. В результате страницы получаются такими:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<f:subview id="editor2">
    <x:div>
         <h:commandLink action="...">
         ...
         </h:commandLink>
    </x:div>
</f:subview>

Но с этим появилась такая проблема. Если у данных custom тегов в ассоциированном компоненте (UIComponent) дописать интерфейс implements NamingContainer - то все работает, но зато у h:commandLink'ов очень сильно раздувается их аттрибут id в генерируемом HTML коде.
Если же убрать реализацию данного интерфеса, то время от времени в разных местах вылетает сообщение об ошибке

javax.servlet.jsp.JspException: Duplicate component ID 'f:_id46' found in view.

Как его побороть по-другому?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF и Duplicate component ID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]