- PR -

Strutsにおける定数

投稿者投稿内容
axis
会議室デビュー日: 2003/10/30
投稿数: 9
投稿日時: 2003-10-30 15:43
Strutsで
・Constants 定数を定義したクラス
・Constants.CONST_VALUE がstatic final で定義した定数
として

<logic:equal name="Form" property="value" scope="request" value="Constants.CONST_VALUE">

もしくは JSTLで

<c:if test="${form.value = Constants.CONST_VALUE}>

のようなことをやりたいのですができません。
皆さんは定数をどのように定義されてますか?
よい方法があれば教えてください。

masaka
常連さん
会議室デビュー日: 2003/08/04
投稿数: 27
お住まい・勤務地: 東京
投稿日時: 2003-10-30 16:25
定数の定義の問題ではないような気がしますが・・・
もしかして、

<logic:equal name="Form" property="value" scope="request" value="<%= Constants.CONST_VALUE %>">

で、解決しますか?
axis
会議室デビュー日: 2003/10/30
投稿数: 9
投稿日時: 2003-10-30 17:04
早速のご返答ありがとうございます。

<logic:equal name="Form" property="value" scope="request" value="<%= Constants.CONST_VALUE %>">
を試しましたがコンパイルできませんでした。

あと、非常に言葉足らずだったのですが
・なるべくスクリプトレット<% %>、式構文<%= %>は使わない。
・JSTLの<c:if><c:choose>などでも定数を使用できる。
というのがありました。
はじめから書くべきでした。申し訳ありません。

タイトルを「Strutsにおける定数」としたのは
定数クラスを作って定数を使おうとした場合にこのような問題があったので
もしかして定数クラスを作るのは間違っているのでは?と思いStrutsで定数を
定義するときのお作法が知りたかったからです。

Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2003-10-30 20:57
そしたら定数を格納したMapかBeanを作成してServletContextにつっこんでおくんですな。
.
.
public void getCONST_VALUE() {
  return Constants.CONST_VALUE;
}
こんな感じで。
axis
会議室デビュー日: 2003/10/30
投稿数: 9
投稿日時: 2003-10-31 09:20
なるほど。
こうすれば普通にStrutsタグ、JSTLで定数の使用ができますね。
定数といえばpublic static finalしか頭になかったので思いつきませんでした。
この方法でいってみようと思います。
ありがとうございました。
nori1122
常連さん
会議室デビュー日: 2003/09/14
投稿数: 30
投稿日時: 2003-11-04 12:31
私もよく定数利用していましたが、
定数を利用することは、分業を目指し利用するstrutsの設計上あまりよろしく無いように思えます。
基本的に定数を使う場合は、カスタムタグを作成するか、もしくは定数はJSPのなかで直に書き込むべきだと思います
axis
会議室デビュー日: 2003/10/30
投稿数: 9
投稿日時: 2003-11-05 11:15
そうですか。Strutsでは定数はあまり使うべきではないのですね。
いままでColdFusionとかで作ってたときには定数をかなり使っていたので
いざ定数を使わないように作ろうとすると難しいですね。
結構ハードコーディングの部分が出てきて(特に属性のキー)見慣れていないので
これでいいのかな?なんて思ったりします。
じょじょに慣れていこうと思います。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-11-06 17:17
引用:

<logic:equal name="Form" property="value" scope="request" value="<%= Constants.CONST_VALUE %>">


Taglib内にスクリプトを書くことは出来ませんよ。
やりたくなる気持ちは分かりますが、、、(私もやろうとしたことあります)

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