blu*_*oot 8 anchor redirect accessibility jsf-2
假设我在JSF Managed Bean中有这个动作:
public String doSomething() {
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("msg", "Something was done successfully");
return "view?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)
我view有一个带有id的锚元素msg.我希望网址有这个锚点(对于可访问性问题),例如:
view.jsf#msg
Run Code Online (Sandbox Code Playgroud)
或者是我的FacesServlet过滤器模式.
return "view#msg?faces-redirect=true";显然不会起作用,因为JSF(至少是mojarra)会尝试view#msg作为一个视图进行评估.
所以我的问题是如何让JSF #msg最终重定向到一个URL .
Bal*_*usC 10
因为JSF(至少是mojarra)会尝试评估
view#msg视图
哦,那太讨厌了.这绝对值得JSF/Mojarra男孩的增强请求.
您最好的选择是在帮助下手动发送重定向ExternalContext#redirect().
public void doSomething() throws IOException {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.getFlash().put("msg", "Something was done successfully");
ec.redirect("view.xhtml#msg");
}
Run Code Online (Sandbox Code Playgroud)
(假设FacesServlet已映射*.xhtml)
或者,您可以有条件地渲染一块JS来代替它.
<ui:fragment rendered="#{not empty flash.msg}">
<script>window.location.hash = 'msg';</script>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5126 次 |
| 最近记录: |