- PR -

頁替えロジックのlogic:iterate(JSP)とビューオブジェクト間での値の引渡しについて

投稿者投稿内容
T_DRAGON_2000
会議室デビュー日: 2004/01/20
投稿数: 18
投稿日時: 2007-01-25 11:27
説明不足ですいませんでした。
よろしくお願いします。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-25 11:29
引用:

nagiseさんの書き込み (2007-01-25 11:12) より:
コード:

<bean:parameter id="tempOffset" name="ListVO" property="offset" />
<logic:iterate id="d_rec" name="ListVO" property="list"
offset="tempOffset">
...
</logic:iterate>


みたいにするんでしたっけ?
Strtus現役の識者の方、サポートお願いします。


bean:parameter・・・?
変数定義は bean:define じゃなかったでしたっけ?

ここに書いてある。
http://www.techscore.com/tech/ApacheJakarta/Struts/8-2.html

[ メッセージ編集済み 編集者: るぱん 編集日時 2007-01-25 11:34 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-01-25 12:20
引用:

るぱんさんの書き込み (2007-01-25 11:29) より:
ここに書いてある。
http://www.techscore.com/tech/ApacheJakarta/Struts/8-2.html


これ、スクリプトレット(要するに<%%>のこと)で変数宣言して使ってますね。
いつごろ書かれた記事なんだろ。動かすだけなら
コード:
<logic:iterate id="d_rec" name="ListVO" property="list" 
  offset="<%=ListVO.getOffset()%>">


でいいってことなのかしら。
EL式使う以外にスクリプトレットを排除できないのですかね?
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-25 12:25
引用:

nagiseさんの書き込み (2007-01-25 12:20) より:
引用:

るぱんさんの書き込み (2007-01-25 11:29) より:
ここに書いてある。
http://www.techscore.com/tech/ApacheJakarta/Struts/8-2.html


これ、スクリプトレット(要するに<%%>のこと)で変数宣言して使ってますね。
いつごろ書かれた記事なんだろ。動かすだけなら
コード:
<logic:iterate id="d_rec" name="ListVO" property="list" 
  offset="<%=ListVO.getOffset()%>">


でいいってことなのかしら。
EL式使う以外にスクリプトレットを排除できないのですかね?


(ノ_・、)
beanタグライブラリ
http://www.techscore.com/tech/ApacheJakarta/Struts/3-2.html
T_DRAGON_2000
会議室デビュー日: 2004/01/20
投稿数: 18
投稿日時: 2007-01-25 12:58
現在実験中ですが、

<bean:define id="vo_maxLine" name="ListVO" property="maxLine" />
<bean:define id="vo_offset" name="ListVO" property="offset" />
と定義し
<logic:iterate id="d_rec" name="ListVO" property="list" offset='<%=vo_offset %>' length='<%=vo_maxLine %>' >
で実行したところ、下記のようなエラーが発生
たしかに、ゲッターした作成していないので、セッターも作成して再度実行の予定です。(セッターは作成するつもりはなかったのですが)


MadSrcSel00.jsp:308:71: 型 org.apache.struts.taglib.logic.IterateTag 内のメソッド setOffset(java.lang.Object) に一致するものは見つかりませんでした。
<logic:iterate id="d_rec" name="ListVO" property="list" offset='<%=vo_offset %>' length='<%=vo_maxLine %>' >
^-^
MadSrcSel00.jsp:308:96: 型 org.apache.struts.taglib.logic.IterateTag 内のメソッド setLength(java.lang.Object) に一致するものは見つかりませんでした。
<logic:iterate id="d_rec" name="ListVO" property="list" offset='<%=vo_offset %>' length='<%=vo_maxLine %>' >
T_DRAGON_2000
会議室デビュー日: 2004/01/20
投稿数: 18
投稿日時: 2007-01-25 13:09
セッターを作成してみましたが、変わらずでした。

他に下記のような指定をしてみましたが、ECLIPSE上で赤になります。
<logic:iterate id="d_rec" name="ListVO" property="list" offset=<%=vo_offset %> length=<%=vo_maxLine %> >
<logic:iterate id="d_rec" name="ListVO" property="list" offset="<%=vo_offset %>" length="<%=vo_maxLine %>" >
<logic:iterate id="d_rec" name="ListVO" property="list" offset=vo_offset length=vo_maxLine >
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-01-25 13:15
引用:

T_DRAGON_2000さんの書き込み (2007-01-25 13:09) より:
他に下記のような指定をしてみましたが、ECLIPSE上で赤になります。
<logic:iterate id="d_rec" name="ListVO" property="list" offset=<%=vo_offset %> length=<%=vo_maxLine %> >
<logic:iterate id="d_rec" name="ListVO" property="list" offset="<%=vo_offset %>" length="<%=vo_maxLine %>" >
<logic:iterate id="d_rec" name="ListVO" property="list" offset=vo_offset length=vo_maxLine >



Eclipseの警告は完全ではないのでアテにしすぎないほうがよいでしょうね。
そもそも<%=vo_maxLine %>をJSP中のどこかに記述してちゃんと取れているかを
確認することから始めましょう。

あせらずにどのステップまで思ったように動いているのか、
どのステップで思ったように動かないのを確認すると
問題解決が早まりますよ。
T_DRAGON_2000
会議室デビュー日: 2004/01/20
投稿数: 18
投稿日時: 2007-01-25 13:33
返信ありがとうございます。さっそくJSP上でデバッグしてみました

<bean:define id="vo_maxLine" name="ListVO" property="maxLine" />MAXLINE =<%=vo_maxLine %>
<bean:define id="vo_offset" name="ListVO" property="offset" />OFFSET =<%=vo_offset %>

として実行。(iterate文はとりあえずoffset lengthは削除)

結果は以下の通り
MAXLINE =20 OFFSET =0

うまくとれているようです。

次にこれらの変数vo_offsetとvo_maxLineをlogic:iterateの中で使えれば解決するのですが...

よろしくお願いします。

[ メッセージ編集済み 編集者: T_DRAGON_2000 編集日時 2007-01-25 13:34 ]

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