質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Q&A

解決済

1回答

2063閲覧

【Struts2】ValueStackから値を持ってくる時に、%{xxx}を使う時と使わない時の区別

RogerFederer

総合スコア19

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

1グッド

1クリップ

投稿2018/10/30 14:47

検索の結果得た画像一覧をJSPに表示するとします。

JSP

1<s:iterator value="session.itemDTOList"> 2 3<s:url id="url" action="ItemAction"> 4<s:param name="id" value="%{id}"/> 5</s:url> 6<s:a href="%{url}"><img src='<s:property value="imageName"/>'></s:a> 7 8</s:iterator>

この時以下のように "%{id}" のように書いてValueStackから値を取る時と、

<s:param name="id" value="%{id}"/> <s:a href="%{url}">

"imageName" のように記号なしで書いて値を取り出す場合があるな、と思いました。

<s:property value="imageName"/>

**そこで確認なのですが、以下①②のように考えたのですが認識は合っているでしょうか。**正確な言い回しが出来ている自信がないので伝わるかどうか不安ですが・・・。


%{xxx}のように書く理由は、記号なしで書いた場合は単なる文字列"xxx"として評価されてしまうためValueStackから値を持ってくるために%{}が必要


s:propertyタグの場合は、そういう風に記述すればActionクラスのsetterを経由して値を取ってこれると決まっているから%{}が必要ない

A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

半分くらい正解です、惜しい。

Struts2用タグの属性値に指定した値は、ValueStackから参照するキー名称で、
(これがまた紛らわしいのですが)以下は同じ意味を示します。

html

1<s:property value="id" />

html

1<s:property value="%{id}" />

つまり、%{ } で囲んだ場合と、囲んでない場合は、両方ともValueStackから取得します。ValueStackには実行されたActionクラスのアクセス可能なフィールドも含まれます。

ちなみに文字列を指定する場合はシングルクォートで囲みます。これはStruts2タグの値が、文字列ではなくValueStackから取得するオブジェクト名を示すからです。

参考記事:https://struts.apache.org/tag-developers/tag-syntax.html

投稿2018/10/30 16:19

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RogerFederer

2018/11/03 11:07

<s:xx />タグで囲うと%{ }が付こうが付くまいがValueStackから取ってくることに変わりがないのですね。。ご回答ありがとうございましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問