我参与了JSF
登录应用程序。这里有两个方法调用doLogin()
,包括登录逻辑和类doFilter()
内部LoginBean
。在index.xhtml
里面有一个命令按钮login
,在这里我使用了这个。action="#{loginBean.doLogin}"
,所以我可以打电话。doLogin()
我的问题是我怎么打电话doFilter()
。
问问题
424 次
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 回答