JSF 2.0 - 将视图ID转换为URL

Dis*_*tum 2 el jsf-2

我想使用EL将视图ID转换为URL.

这样做的目的是使用html <form/>标签将表单提交到页面GET而不是使用POST.与此不同,表单的action属性需要有一个URL <h:form/>.

Bal*_*usC 5

您可以使用#{request.contextPath}动态内联上下文路径:

<form action="#{request.contextPath}/some.xhtml">
Run Code Online (Sandbox Code Playgroud)

如果要提交到当前视图ID,请通过#{facesContext.viewRoot.viewId}以下方式获取:

<form action="#{request.contextPath}#{facesContext.viewRoot.viewId}">
Run Code Online (Sandbox Code Playgroud)

或者如果由于某种原因没有映射FacesServleton *.xhtml,或者你不想依赖它的映射而你的容器支持EL 2.2(或JBoss EL),那么请ViewHandler#getActionURL()改用:

<form action="#{facesContext.application.viewHandler.getActionURL(facesContext, view.viewId)}">
Run Code Online (Sandbox Code Playgroud)