Jsf 2 在JSF(Primefaces)中使用Servlet过滤器检查授权时如何打开弹出窗口、消息或咆哮
我正在为学校做一个项目。我正在使用JSF和Primefaces。但在JSF项目中调用HTML5文件时,使用Servlet过滤器检查授权。因为JSF不支持HTML5。 这个项目有一个HTML5页面。必须登录才能访问此页面。 然而,当HTML5文件在未登录的情况下调用时,我无法打开弹出窗口、消息或咆哮 我可以在LoginFilter中使用FacesMessage吗 代码: 因为JSF不支持HTML5 这完全是胡说八道。JSF只是一个HTML代码生成器。它可以毫无困难地生成合法的HTML5代码。您只需在JSF页面中放置“普通”HTML5元素,如Jsf 2 在JSF(Primefaces)中使用Servlet过滤器检查授权时如何打开弹出窗口、消息或咆哮,jsf-2,primefaces,popup,servlet-filters,growl,Jsf 2,Primefaces,Popup,Servlet Filters,Growl,我正在为学校做一个项目。我正在使用JSF和Primefaces。但在JSF项目中调用HTML5文件时,使用Servlet过滤器检查授权。因为JSF不支持HTML5。 这个项目有一个HTML5页面。必须登录才能访问此页面。 然而,当HTML5文件在未登录的情况下调用时,我无法打开弹出窗口、消息或咆哮 我可以在LoginFilter中使用FacesMessage吗 代码: 因为JSF不支持HTML5 这完全是胡说八道。JSF只是一个HTML代码生成器。它可以毫无困难地生成合法的HTML5代码。您只需
。它将不触碰它并按原样输出它。JSF能为您做的更多的是将它包装在一个自定义/复合组件中,如
,以便提交的值立即更新为bean属性,并且您可以执行验证并在其上附加侦听器,而无需任何额外的工作
只需将这些HTML文件重命名为.xhtml
,并在FacesServlet
上添加/使用*.xhtml
映射即可。这样,您就可以在所谓的HTML5页面上使用JSF组件
另见:
@WebFilter(urlPatterns = { "/design.html" , "/demodesign.html" } )
public class LoginFilter implements Filter{
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
UserBean userBean = (UserBean) ((session != null) ? session.getAttribute("userBean") : null);
User member = null;
if ( !(userBean == null) )
member = userBean.getMember();
if (member != null) {
chain.doFilter(request, response);
} else {
response.sendRedirect(welcomeURL);
}
}
}