У меня есть JSF h:datatable
с рядами данных:Как открыть новую страницу при нажатии строки на странице JSF?
<h:dataTable id="dataTable" value="#{SessionsController.dataList}" binding="#{table}" var="item">
<!-- Check box -->
<h:column>
<f:facet name="header">
<h:outputText value="Select" />
</f:facet>
<h:selectBooleanCheckbox onclick="highlight(this)" value="#{SessionsController.selectedIds[dataItem.id]}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="№" actionListener="#{SessionsController.sort}">
<f:attribute name="№" value="№" />
</h:commandLink>
</f:facet>
<h:outputText value="#{table.rowIndex + SessionsController.firstRow + 1}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Account Session ID" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Account Session ID" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.aSessionID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="User ID" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="User ID" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.userID}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity Start Time" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity Start Time" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activityStart}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity End Time" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity End Time" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activityEnd}" />
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Activity" actionListener="#{SessionsController.sort}">
<f:attribute name="sortField" value="Activity" />
</h:commandLink>
</f:facet>
<h:outputText value="#{item.activity}" />
</h:column>
</h:dataTable>
Я хочу, чтобы дать возможность пользователю открывать новую страницу, когда он нажимает на подряд. я обнаружил, что JavaScript-код, чтобы быть полезным:
$("table#dataTable tbody tr").click(function() {
window.location = $(this).find("a:first").attr("href");
});
Проблема заключается в том, что мне нужен JSF тег, который будет использоваться JavaScript, чтобы открыть новую страницу, когда строка щелкнул и передавать данные. В этом примере href используется для перехода в новое окно. Мне нужен тег JSF, который можно использовать для этой же цели. Есть ли подходящий тег JSF?
С наилучшими пожеланиями
Есть ли альтернативный способ открыть новую страницу? Например, это возможно, когда я нажимаю на строку, чтобы вызвать метод Java из управляемого компонента. Метод Java вернется, например, «123acb». Я настрою это в файле faces-config.xml в качестве правила навигации. –
Не без хорошей загрузки JavaScript. Его проще использовать, например, для PrimeFaces ' '. См. Также http://www.primefaces.org/showcase/ui/datatableRowSelectionInstant.jsf –
BalusC
ну, я предпочитаю использовать чистый JSF. Можете ли вы придумать любой возможный способ достижения моей цели? –