powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF DataTable как узнать в каком ряду я нажал по ссылке?
5 сообщений из 5, страница 1 из 1
JSF DataTable как узнать в каком ряду я нажал по ссылке?
    #33704425
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть таблица:
- ид
- рус
- англ
- ссылка "обновить"

таблица связана с полем List в бине. все как в книжках.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        <h:dataTable value="#{keywordBean.keywords}" var="currentKeyword" rows="25">
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Идентификатор"/>
                </f:facet>
                <h:outputText value="#{currentKeyword.keywordId}"/>
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Русское"/>
                </f:facet>
                <h:inputText value="#{currentKeyword.nameRU}"/>
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Английское"/>
                </f:facet>
                <h:outputText value="#{currentKeyword.nameEN}"/>
            </h:column>
            <h:column>
                <h:commandLink actionListener="#{keywordBean.updateKeyword}">
                    <h:outputText value="Обновить"/>
                </h:commandLink>
            </h:column>
        </h:dataTable>

как теперь в методе keywordBean.updateKeyword(ActionEvent e) узнать, в какой строке была нажата ссылка (т.е. как получить соответствующий идентификатор из 1го поля)? в гугле нашел способ:
Код: plaintext
1.
2.
3.
4.
               <h:commandLink actionListener="#{keywordBean.updateKeyword}">
                   <h:outputText value="Обновить"/>
                   <f:param name="keywordId" value="#{currentKeyword.keywordId}"/>
               </h:commandLink>

но это - возвращение к сервлетам. может есть способ как это все по умному сделать?

сильно не бить, я - ламер.
...
Рейтинг: 0 / 0
JSF DataTable как узнать в каком ряду я нажал по ссылке?
    #33704596
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дебаггером в идее наткнулся на такой способ:
Код: plaintext
1.
 int  selectedRow = ((HtmlDataTable)context.getViewRoot().findComponent("keywordsForm:keywordsTable")).getRowIndex();

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
JSF DataTable как узнать в каком ряду я нажал по ссылке?
    #33707552
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в обработчике кнопки нужно написать:

Код: plaintext
1.
2.
3.
4.
5.
        YourTableBean bean =
                (YourTableBean) context()
                .getExternalContext()
                .getRequestMap()
                .get("currentKeyword");

Таблица в JSF автоматически помещает в таких случаях бин в RequestScope и именно тот бин, который соответствует строке, в которой была нажата кнопка. Имя этого бина в RequestScope равно значению атрибута var таблицы, хотя это и по коду наверное понятно.
...
Рейтинг: 0 / 0
JSF DataTable как узнать в каком ряду я нажал по ссылке?
    #33707840
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, помогло
-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
JSF DataTable как узнать в каком ряду я нажал по ссылке?
    #33723495
gals
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно воспользоваться еще примером из simple/masterDetail.jsp.
В tomahawk есть тег:
Код: plaintext
1.
<t:updateActionListener property="#{keywordBean.currentId}" value="#{currentKeyword.keywordId}"/>
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF DataTable как узнать в каком ряду я нажал по ссылке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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