Я использую h:link
с includeViewParams=true
, чтобы перемещаться между моим списком и просматривать страницы и сделать URL страницы просмотра закладок, но он не работает. Ниже соответствующая часть моего кода:f: параметр не проходит параметр или параметр не устанавливается
в layout.xhtml (мой шаблон):
<f:view locale="#{localeBean.lang}">
<ui:insert name="metadata"/>
в Articles.xhtml (мой список страниц):
<h:form>
<p:datagrid var="item" value="articleController.items">
<p:column>
<h:link outcome="View_Articles?faces-redirect=true&includeViewParams=true" styleClass="view-details">
<h:outputText value="#{item.title}"/>
<f:param name="id" value="#{item.articleId}"/>
</h:link>
</p:column>
</p:datagrid>
</h:form>
в View_Article.xhtml (моя страница подробнее):
<ui:composition template="./WEB-INF/templates/layout.xhtml">
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="id" value="#{articleController.id}" />
<f:viewParam name="id" value="#{articleLclController.id}"/>
</f:metadata>
</ui:define>
Дополнительная информация: Я использую JSF 2.2, фильтр ocpsoft rewrite, библиотеку стилей и ArticleController.java
- это сеанс.
Я попытался следующие:
1- я h:commandLink
; с этим, навигация работала, но URL не включают в себя представление-Params
Articles.xhtml:
<h:commandLink id="viewArticleDetails" action="#{articleController.viewArticleByID()}" styleClass="view-details">
<h:outputText value="View Details"/>
<f:setPropertyActionListener target="#{articleController.id}" value="#{item.articleId}"/>
<f:setPropertyActionListener target="#{articleLclController.id}" value="#{item.articleId}"/>
</h:commandLink>
ArticleController.java: ...
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
current = ejbFacade.find(id);
}
public String viewArticleByID(){
return "View_Article?faces-redirect=true&includeViewParams=true";
}
...
Я ожидал, что URL будет http://localhost:8080/testApp/en/View_Article?id=1
, но это было как `http://localhost:8080/testApp/en/View_Article
2- Я вставил http://localhost:8080/testApp/en/View_Article?id=1
, и он работал в обоих случаях.
Я изменил код в Articles.xhtml в '<ч: ссылка результат =" View_Article лица переадресацией = истина & includeViewParams = true "styleClass =" view-details "> ' но он все еще не работает. Btw мой bean - это сеанс. –
user2911374
Этот способ предназначен для работы с областью видимости. Почему вы используете область сеанса для работы со спецификой просмотра? –
Я изменил свою фасоль, чтобы посмотреть в нее в скором времени и через google, но это все еще не работает. Проблема, я думаю, в том, что 'f: param' не устанавливает' item.articleId' в 'id' и, следовательно, возвращает null. Или это может быть 'f: viewParam', который не устанавливает' id', потому что я заметил, что 'setId' никогда не вызывается. – user2911374