我想使用 EL 将 View ID 转换为 URL。
这样做的目的是使用 html <form/>
使用 GET
标记将表单提交到页面而不是 POST
.表格的action
属性需要有一个 URL,不像 <h:form/>
.
最佳答案
您可以使用#{request.contextPath}
动态内联上下文路径:
<form action="#{request.contextPath}/some.xhtml">
如果要提交到当前 View 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)}">
关于jsf-2 - JSF 2.0 - 将 View ID 转换为 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216272/