[Seasar-user:13839] Re: [Teeda] Teeda Ajax 事始め

Masao NADAI [E-MAIL ADDRESS DELETED]
2008年 4月 20日 (日) 16:44:54 JST


小林 (koichik) 様、ひが様

お世話になっております。

> > #XxxService、XxxServiceImpl の構成で、
> > #Bindingしてくれるのかなぁ。
> >
> されますよ。

されました。ありがとうございました。

>> ServiceからSessionの参照の仕方もわかりません。
>
>Dto に @Component アノテーションを付けてインスタンス
>属性を session にします.
>
>@Component(instance=InstanceType.PROTOTYPE)
>public class XxxDto {
> ...
>}
>
>Service クラスでこの Dto をプロパティとして
>持ちます.
>
>public class YyyService {
> public XxxDto xxxDto;
> ...
>}

この方法は、うまくいきませんでした。
sessionSaveにしてみたり、SubapplicationScopeにしたり
してみましたが、Service の xxxDtoは、nullです。
私が、何か勘違いしているのかもしれません。
そして、Serviceに渡したいのは、List<XxxDto>だったりします。
ただ、サービスの設計上、このオブジェクトを引数として渡し
たいのですが、

  var startAjaxList = function(){
    function ajax_ajaxService_ajaxStartAjaxList(res){
      Kumu.Ajax.render(res);
    }
    Kumu.Ajax.executeTeedaAjax(ajax_ajaxService_ajaxStartAjaxList, []);
  };

executeTeedaAjaxの引数で、渡すことは可能でしょうか?


すいませんが、まだまだお伺いしたいです(長文で申し訳ございません)。

teeda-html-exampleのajax.htmlとAjaxPage.javaを見て、
Teeda Ajaxの勉強をしています。

-- サンプルより --
Listを受け取る

  var startAjaxList = function(){
    function ajax_ajaxPage_ajaxStartAjaxList(res){
      Kumu.Ajax.render(res);
    }
    Kumu.Ajax.executeTeedaAjax(ajax_ajaxPage_ajaxStartAjaxList, []);
  };

  public Map ajaxStartAjaxList() {
    List list = new ArrayList();
    for (int i = 0; i < 10; i++) {
      ListDto dto = new ListDto();
      dto.setNo(i);
      dto.setName("user" + Integer.toString(i));
      list.add(dto);
    }
    Map map = new HashMap();
    map.put("list", list);
    return map;
  }

<table border="1">
  <thead>
    <td>No</td>
    <td>UserName</td>
  </thead>
  <tbody>
    <tr id="list" style="display: none;">
      <td id="no">ここが変わります</td>
      <td id="name">ここが変わります</td>
    </tr>
  </tbody>
</table>
<input type="button" value="Start Ajax List" id="startAjaxList" />
--------

これで、なぜ、ボタンを押すたびにテーブルに行が追加されて
いくのか理解できません。
どなたか、解説していただけないでしょうか?

また、これを追加ではなく、入替え(元の要素は消して、新しく
受け取ったListの要素を追加)とするにはどうしたらよいでしょうか?

もう1つ、
Pageクラスのメソッドの戻り値をMapで返さなければならない
理由はなんでしょうか?idとの関連付けができないからでしょうか。
できれば、Listで返して、id="~items"で受け取りたいのですが、

--------
  var startAjaxList = function(){
    function ajax_ajaxPage_ajaxStartAjaxList(res){
      Kumu.Ajax.render(res);
    }
    Kumu.Ajax.executeTeedaAjax(ajax_ajaxPage_ajaxStartAjaxList, [],
      {fooItemsと関連付ける記述});
  };

  public List ajaxStartAjaxList() {
    List list = new ArrayList();
    for (int i = 0; i < 10; i++) {
      ListDto dto = new ListDto();
      dto.setNo(i);
      dto.setName("user" + Integer.toString(i));
      list.add(dto);
    }
    return list;
  }

<table border="1">
  <thead>
    <td>No</td>
    <td>UserName</td>
  </thead>
  <tbody id="fooItems">
    <tr>
      <td><span id="no">ここが変わります</span></td>
      <td><span id="name">ここが変わります</span></td>
    </tr>
  </tbody>
</table>
--------

こんな感じで、仕立てることはできないでしょうか?

以上、Teeda Ajaxを始めたばかりなので、外した質問かも
しれませんが、よろしくお願いいたします。


Seasar-user メーリングリストの案内