- PR -

bean:defineタグの使い方

1
投稿者投稿内容
ぐう
会議室デビュー日: 2005/05/26
投稿数: 16
投稿日時: 2005-05-26 16:10
初歩的なことですが、strutsの<bean:define>の使い方を教えて下さい。

DBに利用者毎のカウンタ項目(CTR:integer)があり、これを使って<logic:iterate>の繰り返し回数を制御したいのですが上手くいきません。
<logic:iterate>は(1)のように定義していて、CTRさえ上手く設定できればちゃんと動くのですが、利用者がログインしていない時にはCTRが不定となりエラーになります。
そこで利用者がログインしていないときの為に(1)の前に(2)を付け加えたのですが「ServletException in '/WEB-INF/welcome.jsp': null」になります。
<bean:define>でInteger型からString型を取り出すためにはどうしたらいいのでしょうか?


(1)
<logic:iterate id="product" name="products" type="model.Product" offset="<%=(String)request.getAttribute("offset") %>" length="<%= CTR %>" indexId="count" >

(2)
<bean:define id="CTR" value="0" />
<logic:present name="login"> // ログインしているとき
<bean:define name="login" property="catalogListCount"
id="CTR" type="java.lang.String" />
</logic:present>
<logic:notPresent name="login"> // ログインしていないとき
<bean:define id="CTR" value="3" />
</logic:notPresent>
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2005-05-26 16:41
ぐうさん、こんにちは。

不定というのはnullということですか?
もしそうなら、<logic:empty>タグが使えるかと思います。
ぐう
会議室デビュー日: 2005/05/26
投稿数: 16
投稿日時: 2005-05-26 16:50
<logic:empty>タグも試してみましたが、CTRが定義済みか否かの判定は結局<logic:present name="login">で判定することにしました。
ぐう
会議室デビュー日: 2005/05/26
投稿数: 16
投稿日時: 2005-05-26 19:17
こんな風にしてみました。

<bean:define name="login" property="catalogListCount"
id="CTRi" type="java.lang.Integer" />
<bean:define id="CTR" value="<%=CTRi.toString() %>"
type="java.lang.String" />
1

スキルアップ/キャリアアップ(JOB@IT)