- PR -

Struts で bean:define タグ使用時に表示されるエラーについて

1
投稿者投稿内容
rice
会議室デビュー日: 2004/02/14
投稿数: 6
投稿日時: 2007-04-23 14:05
riceといいます。
現在、All-In-One Eclipse 3.0.1(Eclipse 3.2.0 WTP 1.5.0)上で Struts 1.2 の開発環境を構築しています。

All-In-One Eclipseを使用するのは、今回が初めてなのですが、
<bean:define>タグで指定したID名(変数名)をJSPで使用しようとすると、
「xxxxx を解決できません。」というエラーが表示されます。

※エディタ上は上記のエラーが表示されるのですが、実行は問題なく動作します。

例)hogehoge.jsp
<bean:define id='hogehoge' name='HogehogeForm' property='hogehoge' type='java.lang.String'/>
<%=hogehoge%>
  ↑
ここでエラー(「hogehoge を解決できません。」)表示されます。

エディタ上はエラー表示されていても実行は問題ないので、<bean:define>タグの使い方は間違いないと思うのですが、エラー表示は気持ち悪いです。
このエラーを表示させないようにするには、何か設定が必要なのでしょうか?

ご存知の方がいらっしゃいましたら、お願い致します。

環境
 Windows 2000 Professional SP4
 JDK1.4.2
 Tomcat 5.0.30
 Struts 1.2.7
 All-In-One Eclipse 3.0.1(Eclipse 3.2.0 WTP 1.5.0)


[ メッセージ編集済み 編集者: rice 編集日時 2007-04-23 14:29 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-04-23 14:33
引用:

riceさんの書き込み (2007-04-23 14:05) より:

例)hogehoge.jsp
<bean:define id='hogehoge' name='HogehogeForm' property='hogehoge' type='java.lang.String'/>
<%=hogehoge%>
  ↑
ここでエラー(「hogehoge を解決できません。」)表示されます。

エディタ上はエラー表示されていても実行は問題ないので、<bean:define>タグの使い方は間違いないと思うのですが、エラー表示は気持ち悪いです。


<% ... %>はスクリプトレットであって、カスタムタグじゃないです。
<bean:write>を使いましょう。

エディタで警告が出て、実行時に問題が無いというのは、
エディタ上のチェックでは、hogehogeの定義がないからです。
実行時に問題がないのは、JSPがコンパイルされると、
<bean:define>の宣言から、hogehogeの定義が現れるからです。
rice
会議室デビュー日: 2004/02/14
投稿数: 6
投稿日時: 2007-04-23 15:26
Edosson様、早速の返信、ありがとうございます。

ご指摘のとおり、例)として記述した内容の場合、
<bean:write>タグを使用することが望ましいと思うのですが、
実際は、name='HogehogeForm' property='hogehoge' の値を
JSPスクリプト上で処理(例えば、文字列切り取ったりなどの加工)して
表示させたりする為、<bean:define>タグを利用したいのです。

※タイトルや 例)として挙げた内容が曖昧で、Edosson様にお時間を取らせてしまい、
 申し訳ございませんでした。

今までは、WTP は利用していなかった(Tomcat Plug-In + HTMLEditerを利用していた)為、JSPエディタ上でエラーの表示などはされていなかったのですが、
今回は社内の開発環境をある程度統一させる為、WTP を利用することになりました。

JSPエディタ上の警告は表示させない等の設定はないのでしょうか。
また、他に方法があれば、ご教授の程よろしくお願い申し上げます。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-04-23 16:17
個人的には、無視すればいいじゃん、と思うのですけど。

<% String hogehoge = null %>

とか、追加すれば?

ただし、スクリプトレットの定義とカスタムタグの定義がかぶると
どうなるのかは、私は知らないです。
加工後と加工前で別の変数を使えば済むことですが。

<追記>
変数名がかぶると、実行時に、
「同じ変数を2回も宣言すんな」って蹴られそうですね。
</追記>

[ メッセージ編集済み 編集者: Edosson 編集日時 2007-04-23 16:26 ]
yos
常連さん
会議室デビュー日: 2004/08/24
投稿数: 27
投稿日時: 2007-04-23 16:55
プロジェクトのプロパティを表示して
妥当性検査の「JSP構文バリデーター」のチェックをはずすと、
警告が表示されなくなりませんか?
rice
会議室デビュー日: 2004/02/14
投稿数: 6
投稿日時: 2007-04-23 17:21
Edosson様、yos様、返信ありがとうございます。

Edosson様
 私も、当初は無視をしていたのですが、エラーの件数が増えると、
 「問題ビュー」に沢山エラーがでて、肝心のJAVAソースのエラーが
 わかりにくいという問題が発生した為、今回、質問させていただきました。
 また、ご指摘のとおり、宣言を別途追加して試してみましたが、
 やはり、実行時に同一変数名の多重宣言でエラーが出ました・・・

yos様
 ご指摘のとおり、妥当性検査の「JSP構文バリデーター」のチェックをはずすと
 エラー表示が消えました。本当に難儀していたので、助かりました。
 ありがとうございました。

Edosson様、yos様、いろいろ教えていただき、ありがとうございました。

1

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