Strutsのタグの#、%、$記号の違いは何ですか?
2023-09-26 19:30:15
質問
Struts2を使っているのですが、以下のようにアクセスすると
ValueStack
変数にアクセスする際に
%
を使うか
#
または
$
. 正しいものを見つけるまで、すべて試してみるのです。
缶 誰か説明してください。 の違いは何ですか?
どのように解決するのですか?
シャープ記号の使用
OGNLはActionContext内のオブジェクトを参照するために以下のように使用されます。
-
objectName
: ValueStack(OGNLコンテキストにおけるデフォルト/ルートオブジェクト)内のオブジェクト(Actionプロパティなど -
#objectName
: ActionContext 内にあるが ValueStack の外側にあるオブジェクト、具体的には...-
#objectName
: Struts2のデータタグを利用して、デフォルトのアクションスコープで作成したActionContextオブジェクト(例.<s:set name="foo" value="'Testing'" />
で参照される<s:property value="#foo" />
) -
#parameters.objectName
: リクエストパラメータ -
#request.objectName
: リクエストスコープ付き属性 -
#session.objectName
: セッションを前提とした属性 -
#application.objectName
: アプリケーションを前提とした属性 -
#attr.objectName
: ページ、リクエスト、セッション、アプリケーションのいずれかのスコープにある属性 (この順番で検索されます)
-
上記のスコープ付きマップの参照(パラメータ、リクエスト、セッション、アプリケーション)は、2つの方法のうちの1つで行うことができます。
-
#scopeName.objectName
または -
#scopeName['objectName']
パーセント記号の使用
%{ OGNL expression }
は、通常Stringリテラルとして解釈される属性を強制的にOGNLで評価するために使用されます。
例
<s:property value="myProperty" default="%{myDynamicDefaultValue}" />
アットマーク(@)の使用
静的なプロパティやメソッドを参照する際に、@記号を使用します。Struts2のプロパティでこれを有効にする必要があるかもしれないことに注意してください。
struts.ognl.allowStaticMethodAccess=true
例です。
@my.package.ClassName@MY_STATIC_PROPERTY
@my.package.ClassName@myStaticMethod
ドル記号の使用
Struts2 OGNLでは、ドル記号を特別に使用することはありません。しかし、通常のJSTL式の評価には使用することができます。例えば
Struts2です。
<h1><s:property value="#pageTitle" /></h1>
(は...と同等)
JSTLです。
<h1>${pageTitle}</h1>
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
Zipファイルの圧縮・解凍にantを使用する
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
Javaでよくある構文エラー
-
プロジェクトの依存関係を解決できない。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
ジャバアレイ
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
代入の左辺は変数でなければならない 解答
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
ApiModel と @ApiModelProperty の使用法