m-namikiの日記

おもしろき こともなき世を おもしろく

SAStruts + jQueryその2

前々回のエントリーで上手く動かないと言っていたが、Actionにパラメータを記述するのではなくて、Formに記述することできちんと動いた。あぁ、しょうもないミス。


気を取り直して、今回はテキストボックスに入力されたコードを基に、DBへの問い合わせを行って名称を取得する方法に挑戦。チュートリアルではボタンクリックをトリガーにしていたが、それが嫌なのでフォーカスが外れたら問い合わせを行うようにする。

<table>
  <tr>
    <td>所属部署:</td>
    <td>
      <html:text property="conditionDeptCode" styleId="deptCode"
          onblur="$('#deptName').load('findDeptNameByDeptCode',
            {'conditionDeptCode':$('#deptCode').val()});"/>
    </td>
    <td>
      <span id="deptName"></span>
    </td>
  </tr>
</table>
    // Action
    @Execute(validator=false)
    public String findDeptNameByDeptCode() {
        if (!StringUtils.isEmpty(form.conditionDeptCode)) {
            Dept dept = deptService.findByDeptCode(form.conditionDeptCode);
            if (null != dept) {
                ResponseUtil.write(dept.deptName);
            }
        }
        return null;
    }

テキストボックスの入力内容を引き渡す方法がイマイチよく分からなかったけど、styleIdを指定することで、実際のHTMLではid属性が追加されるのでそれを利用した。この方法で良いのか自信がないなぁ。jQueryで一般的にはこうやりますよ、みたいな方法が知りたいな。