有没有什么方法可以验证jsf输入文本是只读的,但其值会在触发其他某些事件时更改?jsf(richfaces)只读输入文本验证
6
A
回答
2
我用解决方法解决了这个问题。我已经添加了具有required
属性true
不会在界面上出现的inputHidden
场,但将被验证:
<h:inputHidden value="#{bean.value}" required="true"
requiredMessage="Data must be entered" />
bean.value的价值被其他事件改变,在一些重新描绘上inputHidden,验证发生。
1
您很可能必须直接从您的事件手动调用验证逻辑。这是来自IBM的JSF生命周期模型。
你会发现调用应用程序阶段,事件通常被处理之前处理验证阶段发生。这种情况发生后很好,所以验证不会自动发生。
2
回答评论:“在jsf页面支持bean中验证它会更容易吗?” 您可以对按钮单击或某些类似事件进行应用程序级验证。你可以在你的支持bean中做这样的事情,并将它链接到事件。
public String login(){
FacesContext context = FacesContext.getCurrentInstance();
if(**<<some validation for value in field 'firstName' in form 'userForm'>>**){
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Some Valication check");
message.setSummary("Some Valication check!!");
context.addMessage("userForm:firstName", message);//adds validation message for field firstName in form userForm
return "ERROR";
}
return "SUCCESS";
}
希望这对我有所帮助。
12
仅在渲染响应阶段将readonly
属性设置为true
。通过这种方式,在渲染响应阶段以外的其他阶段不会被视为只读。
<h:inputText ... readonly="#{facesContext.currentPhaseId.ordinal eq 6}" />
+2
在我的例子中,当绘制HTML(当它打印在中间)时,#{facesContext.renderResponse}返回false。无论如何,它的工作方式是'#{facesContext.currentPhaseId.ordinal eq 6}'。 Mojarra 2.1.9。 – SJuan76 2012-09-20 11:28:42
相关问题
- 1. JSF和RichFaces实时验证输入框
- 2. 只验证新输入的文本
- 3. jsf-验证与从输入
- 4. jsf输入分隔验证
- 5. 窗体在只读输入上验证
- 6. JSF Richfaces和自定义验证
- 7. JSF和Richfaces中的日期验证
- 8. 输入文本框验证
- 9. 文本输入验证4.0
- 10. 文本输入验证
- 11. 文本框输入验证
- 12. 验证文本框输入
- 13. Asp.Net验证器和只读文本框
- 14. 验证只字母输入
- 15. 只验证脏输入
- 16. JSF 2.0 - Ajax提交验证输入
- 17. 验证JSF中的小数输入
- 18. 只读文本输入Rails3中
- 19. HTML输入只读截尾的文本
- 20. 验证用户输入,只和整数纯文本
- 21. 验证动态创建文本框只输入数字
- 22. 如何在春天mvc验证文本框只输入数字?
- 23. JSF/RichFaces:条件文本样式
- 24. 验证输入多个文本框
- 25. 验证输入文本轨道
- 26. 输入文本验证何时为空
- 27. jQuery的空文本输入验证
- 28. 输入文本验证错误 - JSP
- 29. 使用angularJS验证输入文本
- 30. 无法正确验证输入=文本
无论在jsf页面支持bean中验证它会更容易吗? – Richie 2012-03-08 12:17:55
如何触发验证并发出验证消息? – 2012-03-09 23:15:06
我已添加答案作为回复评论。欢呼声 – Richie 2012-03-12 11:18:26