扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:郭雄 来源:goCom 2007年12月26日
关键字:
在本页阅读全文(共3页)
我们现在可以将这个bean注册到faces-config.xml中:
<managed-bean> |
我现在可以随时在我的JSF应用中使用这个叫做“userBean”的bean。这个是通过JSF EL表达式来完成的。例如,将一个JSF UI组件绑定到userBean的一个属性上,我可以使用表达式#{userBean.name}作为一个JSF UI组件的参数值。现在,我将userBean的name属性绑定到一个JSF inputText UI组件上:
<h:inputText value="#{userBean.name}"/> |
现在,当组件的值改变时,userBean.name属性也跟着改变。如果userBean.name先改变也是一样。两者将自动保持同步,这是JSF的关键特性。
JSF托管bean的另外一个很重要的特性是它可以通过配置文件来初始化属性。比如说我现在可以通过在配置文件中增加额外的受管属性来为我的userBean定义一些初始的属性值。因此要为我的bean属性设置一些初始值,可以这样做:
<managed-bean> |
要看到这样做的效果,可以构建一个包含有几个被绑定到那些属性的文本框字段的JSF页面,在首次运行这个页面的时候,可以看到从配置文件中设置的一些初始值。
这是JSF的源代码,在一个表单中有几个被关联到userBean属性的输入框:
<h:panelGrid columns="2" > |
如果我们之前没有在faces-config.xml配置文件中设置email属性的初始值,表单中的Email字段值将为空。
关于受管属性的特性,另一个值得指出的是除了管理简单类型的属性,JSF的托管Bean功具还可以处理List和Map这样的属性。比如我可以添加一个”tasks”List到我的userBean中:List tasks;再添加一个setter和getter方法。然后我可以将其作为一个受管属性来初始化这个List。
<managed-property> |
要在运行的时候看到这些初始值,可以在JSP页面中添加一个dataTable组件:
<p>Current Tasks:</p> |
将Map定义为一个受管属性与管理一个List非常相似,除了是要指定map-entries而不是输入list值。如果Map属性在userBean对象被创建时为null,JSF将创建一个新的HashMap并组装它。否则,它会在现的的Map中直接添加条目。比如我现在在userBean中添加一个contactorsBlog的Map并增加setter和getter方法。
在faces-config.xml中这样来初始化我的contactors Map的属性:
<managed-property> |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者