首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JSF+EJB3架构现实项目

2012-10-27 
JSF+EJB3架构实际项目想用JSF1.2+EJB3做个项目,先画了个架构图,拿上来让各位指点指点,有何不妥之处。。In so

JSF+EJB3架构实际项目
想用JSF1.2+EJB3做个项目,先画了个架构图,拿上来让各位指点指点,有何不妥之处。。
In some cases, we need add some wrapper classes which may wrap several POJOs(EJB3 entity beans) for conmunication between web layer and business logic layer.

2) In EJB3 Session Bean,"EntityManger" is used for data handling. You will soon find out that DAO layer seems unnecessary. Consider no DAO layer first,add it when absolutely needed in case very complex business logic.


In my previous project using JSF+EJB,put it simply,the pattern is "Facelets--> .xhtml--> managedBean-->EJB Session Bean--> EJB3 Entity Bean -> database".

we use POJOs(+some wrapper classes) 1)for page component binding(in jsp or .xhtml); 2)for data transfer(as VO)between layers;and 3)for data persistence(as PO). This dramatically reduces the code for data conversion.


In some cases, we need add some wrapper classes which may wrap several POJOs(EJB3 entity beans) for conmunication between web layer and business logic layer.

2) In EJB3 Session Bean,"EntityManger" is used for data handling. You will soon find out that DAO layer seems unnecessary. Consider no DAO layer first,add it when absolutely needed in case very complex business logic.


In my previous project using JSF+EJB,put it simply,the pattern is "Facelets--> .xhtml--> managedBean-->EJB Session Bean--> EJB3 Entity Bean -> database".

we use POJOs(+some wrapper classes) 1)for page component binding(in jsp or .xhtml); 2)for data transfer(as VO)between layers;and 3)for data persistence(as PO). This dramatically reduces the code for data conversion.



我说的显示对象就是类似Struts的ActionFrom的东西。
很是受你的启发。我也一直觉得这样设计太过复杂,而且走入了SSH的圈套,大量的Bean的创建,属性挎贝执行效率会受影响。我目前新的设计见附图。也像你说的:Facelets --> ManagedBean -->EJB3 SessionBean(业务层) -->JPA (持久层) ---> DataBase(EIS层).这样就把Dao层去了,把VO和PO合并了,但感觉显示层的显示对象还是需要的,要不然有些数据在页面显示会有麻烦(robbin很早的一个帖子就讨论过这个问题)。请指点。。。
</div>
<div value="#{xxxBean.staffQueryCondition.startTime}" required="true"/>
</div>
<div value="#{xxxBean.staffQueryCondition.endTime}" rquired="true"//>
</div>

......

<!-- Display search result -->
        <div id="result" var="staff"
                     renderedIfEmpty="false"
                     preserveSort="true"
                     rowIndexVar="rowIndex"
                     rows="#{searchAssetBean.searchResultWrapper.rowsPerPage-5}"
                     stylearrow="true" >
                                 <h:outputText value="#{msg.external_id}"/>
                             </t:commandSortHeader>
                         </f:facet>
                         <h:outputText value="#{staff.name}"/>
                     </h:column>    

                  ......
   
              </t:dataTable>
        </div>

2) JSF managed bean examples:

public class xxxBean extends xxxManagedBean
{
    static final Logger log=Logger.getLogger("xxxBean");

    private StaffQueryCondition staffQueryCondition;
    private List<Staff> staffList;
    ......

    public String query()
    {

        staffList=xxxxSessionBean.get(staffQueryCondition);

        ....

        return "xxxView";
    }

}


11 楼 qiujy 2008-03-10   这样做,也不失为省时,省力的做法。谢谢fxy1949。 12 楼 wetouns 2008-05-28   怎么不用SEAM?

热点排行