Portlet multi-pages avec Icefaces + Seam + Facelets
Bonjour,
J'essaie actuellement de convertir une application web en portlet sous liferay.
Ma page d'accueil s'affiche bien dans la portlet (soucis de styles mis à part) et j'ai réussi à récupérer l'authentification de liferay.
Je rencontre un problème lors de l'appel d'une action redirigeant vers une autre page, en effet les pages appellées sortent du contexte de la portlet, ce qui a pour effet de terminer la conversation seam.
Je n'ai pas d'erreur, mais ma page se réaffiche hors portlet (sûrement dû au no-conversation-view-id de pages.xml).
En gros l'URL appellée est de type http://localhost:8080/appliweb/search/page.seam, au lieu d'être gérée par liferay.
Je reçois juste le message suivant au moment de l'appel à l'action :
Code:
1 2
| 17:10:50,359 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=null[severity=(WARN 1), summary=(The conversation ended, timed out or was processing another request), detail=(The conversation ended, timed out or was processing another request)] |
Voici le code de pages.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<pages xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"
no-conversation-view-id="/search/list.xhtml">
<conversation name="ViewSearch" parameter-name="searchId" parameter-value="#{viewedSearch.id}" />
<page view-id="/search/list.xhtml">
<navigation from-action="#{searchView.selectSearch(s)}">
<redirect view-id="/search/view.xhtml" />
</navigation>
</page>
</pages> |
Code de faces-config.xml:
Code:
1 2 3 4 5 6 7
| <faces-config>
<application>
<view-handler>com.icesoft.faces.facelets.D2DSeamFaceletViewHandler</view-handler>
</application>
</faces-config> |
Code de list.xhtml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <ui:define name="content">
<ice:form>
<ice:dataTable id="searchTable" rows="10"
columnClasses="typeColumn, titleColumn, startDateColumn, endDateColumn, leadingUnitColumn"
rowClasses="oddRow, evenRow" sortColumn="#{searchList.sortedColumn}"
sortAscending="#{searchList.ascending}" value="#{searchList.list}" var="s"
scrollHeight="310px" scrollable="true" columnWidths="24px,560px,70px,70px,200px">
<ice:column id="typeColumn">
<ice:graphicImage url="/img/search/image.png"
rendered="#{searchAxesList.getType(s) == 'OK'}"/>
<ice:rowSelector value="false" selectionAction="#{searchView.select(s)}" />
</ice:column>
</ice:dataTable>
</ice:form>
</ui:define> |
Que faire pour que la navigation s'effectue bien dans la portlet ?