Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          here are 3 possible examples how to initialize component:

          1. Using @Unwrap with method returning object - method doesn't have to be getter:

          @Name("search")
          public class SearchAction {
          // can't be used with @Out
          @Unwrap
          public Map<String,Integer> initList() {
          System.out.println("In-method initList");
          Map<String,Integer> list = new TreeMap<String,Integer>();
          list.put("one", 1);
          list.put("two", 2);
          list.put("three", 3);
          return list;
          }
          }

          to use this component on the page you need to call it search:

          <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <ui:composition xmlns="http://www.w3.org/1999/xhtml"
          xmlns:s="http://jboss.com/products/seam/taglib"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:rich="http://richfaces.org/rich"
          template="layout/template.xhtml">
          <ui:define name="body">
          <h:form id="search" styleClass="edit">
          <h:selectOneMenu>
          <s:selectItems
          value="#{search}"/>
          </h:selectOneMenu>
          </h:form>
          </ui:define>
          </ui:composition>

          2. Using @Factory with method returning void - method doesn't have to be getter and @Out must be used to outject object to page:

          @Name("search")
          public class SearchAction {
          // use with @Out because creation method is returning void
          @Out
          private Map<String,Integer> list;
          @Factory("list")
          public void initList() {
          System.out.println("In-method initList");
          list = new TreeMap<String,Integer>();
          list.put("one", 1);
          list.put("two", 2);
          list.put("three", 3);
          list.put("six", 6);
          }
          }

          to use this component on the page you need to call it list:

          <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <ui:composition xmlns="http://www.w3.org/1999/xhtml"
          xmlns:s="http://jboss.com/products/seam/taglib"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:rich="http://richfaces.org/rich"
          template="layout/template.xhtml">
          <ui:define name="body">
          <h:form id="search" styleClass="edit">
          <h:selectOneMenu>
          <s:selectItems
          value="#{list}"/>
          </h:selectOneMenu>
          </h:form>
          </ui:define>
          </ui:composition>

          3. Using @Factory with method returning object - method mut be getter, @Out is not needed

          @Name("search")
          public class SearchAction {
          // without @Out annotation
          @Factory("list")
          public Map<String,Integer> getList() {
          System.out.println("In-method initList");
          Map<String,Integer> list = new TreeMap<String,Integer>();
          list.put("one", 1);
          list.put("two", 2);
          list.put("three", 3);
          return list;
          }
          }

          component usage is like in example (2.)

          Additionally class used in all these examples doesn't have to be EJB bean - they only have to be Seam component (marked by @Name annotation).

          Each of these method is different - details can be found in http://chiralsoftware.com/jboss-seam-book/unwrap.seam as previously mentioned Thiago Rocha (thanks).

          posted on 2009-03-10 19:57 seal 閱讀(513) 評論(0)  編輯  收藏 所屬分類: Seam
          主站蜘蛛池模板: 四会市| 胶州市| 左权县| 新干县| 汤原县| 卓尼县| 通许县| 阳西县| 长武县| 台南市| 汝阳县| 寻乌县| 濮阳市| 阳东县| 秭归县| 建始县| 云浮市| 象山县| 灌云县| 方山县| 布尔津县| 河间市| 策勒县| 毕节市| 集贤县| 日喀则市| 遵义市| 旅游| 江达县| 新沂市| 上林县| 栾城县| 卫辉市| 邯郸市| 郓城县| 岳普湖县| 黄平县| 康马县| 陕西省| 凤山市| 印江|