JSF 2.0 - конвертировать идентификатор представления в URL - PullRequest
2 голосов
/ 27 августа 2011

Я хочу преобразовать идентификатор представления в URL, используя EL.

Цель этого состоит в том, чтобы использовать тег html <form/> для отправки формы на страницу, используя GET вместо POST.Атрибут action формы должен иметь URL, в отличие от <h:form/>.

Ответы [ 2 ]

5 голосов
/ 29 декабря 2011

Вы можете использовать #{request.contextPath} для динамического встраивания пути к контексту:

<form action="#{request.contextPath}/some.xhtml">

Если вы хотите отправить ID текущего представления, получите его по #{facesContext.viewRoot.viewId}:

<form action="#{request.contextPath}#{facesContext.viewRoot.viewId}">

Или если вы по какой-то причине не сопоставили FacesServlet с *.xhtml, или вы не хотите зависеть от его сопоставления, и ваш контейнер поддерживает EL 2.2 (или JBoss EL), тогда используйте ViewHandler#getActionURL() вместо:

<form action="#{facesContext.application.viewHandler.getActionURL(facesContext, view.viewId)}">
2 голосов
/ 29 декабря 2011

Записывает исходящий URL-адрес из идентификатора представления через контейнер сервлета за один шаг:

<form action="#{facesContext.application.viewHandler.getBookmarkableURL(facesContext,view.viewId,null,false)}">
...