我如何在jsf页面中嵌入java代码?
发布时间:2020-12-15 02:02:06 所属栏目:Java 来源:网络整理
导读:我有: 一个名为“LoginBean”的托管bean. 一个名为“login.xhtml”的JSF页面 在这个jsf页面中,我有一个登录表单. 在managebean内部,我有一个loginCheck函数. public void loginCheck(){ if(logincorrect){ //set user session }else{ //set lockout count s
我有:
一个名为“LoginBean”的托管bean. 一个名为“login.xhtml”的JSF页面 在这个jsf页面中,我有一个登录表单. 在managebean内部,我有一个loginCheck函数. public void loginCheck(){ if(logincorrect){ //set user session }else{ //set lockout count session ++ } } 我想在jsf页面中做的是当锁定计数会话== 2时(意味着用户无法正确登录2次,我需要显示一个重新接收标签). <td> <% if(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("numberOfLogins") == 2){ <p:captcha label="Captcha" requiredMessage="Oops,are you human?"/> } %> ???? 显然,<%标签不起作用.感谢java / jsf专家提供的任何帮助. 解决方法
Scriptlets(那些类似PHP的< %%>事物)是JSP的一部分,自JSF 2.0以来它支持其后继Facelets(XHTML)为
deprecated. Facelets不再支持scriptlet的任何替代方案.在JSP中使用scriptlet几乎在所有情况下都会导致
badly designed and poorly maintainable codebase.忘了它们. Java代码属于完全可用的Java类.只需在控制器(JSF支持bean类)中准备模型(一些Javabean类)并使用taglibs和EL(表达式语言,那些#{}事物)来访问视图中的模型.
你的具体用例, <% if(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("numberOfLogins") == 2){ <p:captcha label="Captcha" requiredMessage="Oops,are you human?"/> } %> 可以在满满的JSF / EL中解决如下: <p:captcha label="Captcha" requiredMessage="Oops,are you human?" rendered="#{numberOfLogins == 2}" /> 顺便说一句,numberOfLogins可以更好地成为JSF @SessionScoped @ManagedBean的属性,而不是手动放置在会话映射中的某个属性. 也可以看看: > Our JSF wiki page – 包含一些体面的JSF教程的链接 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用java代码检测jar内的main.
- java – 使用Collection.stream通过特定属性进行动态分组
- java – 无法找到JAX-WS的Spring Namespace
- 为什么在Java中这是可能的:this.getClass().getClass().ge
- 获取Android设备屏幕宽、高、dpi密度及横竖屏等参数
- 什么是http协议?get和post请求有什么区别?http请求conten
- java – 当标志在不同的线程中更改时,循环不结束
- Java exception handling best practices--转载
- java – Restlet Protocol.FILE用法
- java – 通过反射来改变最终变量,为什么静态和非静态的最终