2011-12-18 2 views
0

Я получил эту таблицу:JSF Datatable ссылку на другую страницу

<p:dataTable value="#{requestBean.requestsList}" var="requestClass" style="width:50px;" id="requestList"> 
    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="ID" /> 
     </f:facet> 
     <h:outputText value="#{requestClass.requestID}" /> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Status" /> 
     </f:facet> 
     <h:outputText value="#{requestClass.requestStatus}" /> 
    </p:column> 

    <p:column> 
     <f:facet name="header"> 
      <h:outputText value="Details" /> 
     </f:facet> 
     <h:outputText value="#{requestClass.requestTitle}" /> 
    </p:column> 
</p:dataTable> 

Теперь строки отображать данные правильно, но я хочу, чтобы иметь возможность нажать на идентификатор записи. Когда я делаю, я перехожу на другую страницу, например. review.xhtml, где параметром url будет этот идентификатор. Так что-то вроде этого: review.xhtml?id="clicked request". Как это делается?

Обновление: Я пробовал это, и это делало любопытную работу, но правильно ли это на практике?

<p:column> 
    <f:facet name="header"> 
     <h:outputText value="ID" /> 
    </f:facet> 
    <a href="review.xhtml?id=#{requestClass.requestID}"> 
     <h:outputText value="#{requestClass.requestID}" /> 
    </a> 
</p:column> 
+0

Смотрите также пример в http://stackoverflow.com/questions/8459903/jsf-application-correct- use-of-session-scope/8464636 # 8464636 – BalusC

+0

Можете ли вы также добавить страницу, которую вы связываете через ''? – Rachel

ответ

6

Попробуйте это:

<p:column> 
    <f:facet name="header"> 
     <h:outputText value="ID" /> 
    </f:facet> 
    <h:link outcome="review" value="#{requestClass.requestID}" > 
     <f:param name="id" value="#{requestClass.requestID}" /> 
    </h:link> 
</p:column> 
+0

hmmm это неясно, где идет URL-адрес? и id, проходящий по URL-адресу? –

+1

Этот URL-адрес go на страницу, указанную в атрибуте 'result', и идентификатор, который вы хотите передать, находится в теге' f: param'. Google - теги h: link и 'f: param', и вы поймете =). –

+0

Кажется, что это работает большую часть времени, но как только таблица данных фильтруется, значение f: param не будет разрешено. Любые мысли о том, как это исправить? – Gowtham

2

попробуйте этот код

<h:outputLink value="#{bean.url}"> 
    <h:outputText value="Go to another page."/> 
    <f:param name="paramid" value="#{bean.id}" /> 
</h:outputLink> 
+0

неясно :(не могли бы вы уточнить? –

+0

bean.url следует заменить на review.xhtml или любой другой url. Paramid должен быть именем параметра, в вашем случае это идентификатор, а bean.id должен содержать значение, которое вы хотите для передачи в качестве параметра. –

+0

см. эту ссылку для получения более подробной информации http://www.jsfcentral.com/listings/A22095?link –

Смежные вопросы