我正在学习JSF并遇到过这样的问题:
<h:messages layout="table"></h:messages>
Run Code Online (Sandbox Code Playgroud)
在示例应用程序中?
我不确定这条线是做什么的?从代码中删除行时我没有错误,并且能够运行它并获得相同的输出?
sve*_*ven 17
所述h:messages标签生成对于未被覆盖的当前JSF视图的所有消息h:message(注缺少"s"在结束)标记.消息可以由您的支持bean(FacesContext.addMessage)显式生成,也可以由JSF隐式生成.
例如,如果您已根据需要标记了输入值,并且用户在未填写所需值的情况下提交表单,则会向视图添加错误消息.如果h:message标记绑定到相关组件,则消息将在那里呈现,否则它将由h:messages视图中的全局标记呈现(如果有).
该layout属性指定要生成的HTML代码应该是什么样的.的table布局(在实施例中使用)使用HTML表格显示消息,而list布局使用项目列表(HTML ul标签).
如果您未h:messages在视图中指定标记而且没有h:message标记,则不会通知用户有关错误的信息.因此,最佳做法是h:message为视图的每个输入组件h:messages添加标记,并为整个视图添加标记,以确保用户可以看到所有消息.
您将在JSF Toolbox中找到一个紧凑的JSF标记引用.
组件<h:message>和<h:messages>专用于显示消息给用户(一般错误消息).
例如,当您对失败的字段进行验证时(例如,用户未填写必填字段,或在仅限数字字段中输入字符串),则会将a FacesMessage添加到FacesContext对象中.该<h:message>和<h:messages>然后用于显示在页面的消息.
该组件<h:messages>将显示包含在其中的所有消息FacesContext,而该组件<h:message>专用于特定的clientId(特定字段).例如,当您想要将消息放在靠近字段的位置时,后者很有用.
请注意,您可以添加将向用户显示的任何类型的消息:
FacesContext.getInstance().addMessage(null, new FacesMessage("The message to display"));
Run Code Online (Sandbox Code Playgroud)
在此示例中,第一个参数是此消息所关注的字段的ID字段(当消息是特定字段的验证消息时很有用).null表示该消息是一般信息(即未链接到任何特定字段).
您可以在此处查看此组件的示例.请注意,此示例使用的rich:messages是"基本"的扩展(由RichFaces提供)<h:message/>,但原理是相同的.
| 归档时间: |
|
| 查看次数: |
18016 次 |
| 最近记录: |