#{person.name} 代表会取Person这个组件的name属性,需要在对应的action中用@in定义一个Person值域,从而注入Person. 同理@out指定输出字段
<h:dataTable value="#{fans}" var="fan">
<h:column>
<h:outputText value="#{fan.name}"/>
</h:column>
</h:dataTable>
相当于for each输出一个list
@in @out就是Bijection双射
@PersistenceContext private EntityManager em; 注入一个EntityManager,
EntityManager.persist()保存实体bean为表中的一行
EntityManager.query()运行类似sql的语句
调用jpa存储
如果action方法返回null ,将本页刷新,如果返回一个字符串,将会切换到navigation.xml中对应的页面
按ejb3session bean的要求所有public的action方法需要在一个接口中定义 @Local
定义了@Name的POJO都可以做为一个组件,不限于ejb3.但就失去了一些ejb的优势
FacesMessages 可以访问JSF上下文中的h:message
@in@out也可以在setter/getter方法前定义