我参与了JSF登录应用程序。这里有两个方法调用doLogin(),包括登录逻辑和类doFilter()内部LoginBean。在index.xhtml里面有一个命令按钮login,在这里我使用了这个。action="#{loginBean.doLogin}",所以我可以打电话。doLogin()我的问题是我怎么打电话doFilter()。
1 回答
1
假设你有一个这样的托管 bean:
@RequestScoped
@ManagedBean
public class Login {
public Login() {
}
public String doLogin() {
}
public void doFilter() {
}
}
如果你需要调用doFilter里面doLogin的方法,只需像基本编程一样添加调用:
public String doLogin() {
//some code here...
doFilter();
//more code over here...
}
根据您的最后一个问题:Primefaces Login Application,您混淆了doFilter属于 Web 过滤器的doLogin方法和属于托管 bean 的方法:
当
doLogin用户激活它调用此方法的事件时,FacesServlet 将调用 。例如,一个 UI 命令动作:<h:form> <h:commandButton value="Click me!" action="#{loginBean.doLogin}" /> </h:form>该
doFilter方法将由 Web 过滤器调用。请注意,当且仅当请求 URL 与 Web 过滤器中声明的 URLPattern 匹配时,过滤器才会在 (Faces)Servlet 之前执行。这表示:- 我们有一个 URLPattern = "*.xhtml" 的过滤器
- 每次我向 发出请求时
<whatever>.xhtml,都会调用过滤器。 - 调用时,它将执行该
doFilter方法(默认方法)。
更多信息:
- Java Web开发,我需要什么技能?通过 BalusC. (我建议您阅读答案中的链接)。
- 我们的 wiki 页面中的Java Servlet 过滤器。
- JSF在我们的 wiki 页面中。
- BalusC 的JSF HTTP 会话登录。
- JSF:如何在 JSF 中控制访问和权限?通过 BalusC.
附带说明:您确实必须学习 Java Web 开发的基础知识和最佳实践。
于 2012-10-02T06:03:43.990 回答