7.3. linkタグ/frameタグ/imgタグ
linkタグはリンク先を指定する<a>タグ、frameタグはフレーム内で表示するリソースを指定する<frame>タグ、imgタグは画像を表示する<img>タグを置き換えるものです。全てターゲットとなるリソースを指定するタグですが、リソースの指定方法がHTMLでは1種類であったのに対し、HTMLタグライブラリのタグでは2〜3種類に増えています。
linkタグ/frameタグ
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
href |
○ |
<a><frame>のhref属性と同じで、相対パス・絶対パスによってリンク先を指定します。 |
|
forward |
○ | struts設定ファイルのglobal-forwardsからリンク先を検索します。 | |
page |
○ | Webアプリケーションルートからの絶対パスでリンク先を指定します。 |
imgタグ
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
src |
○ |
<img>タグのsrc属性と同じで、相対パス・絶対パスによってリンク先を指定します。 |
|
srcKey | ○ | 相対パス・絶対パスはメッセージリソースに格納されており、その値を検索するためのキーを指定します。 | |
page |
○ | Webアプリケーションルートからの絶対パスでリンク先を指定します。 | |
pagKey | ○ | Webアプリケーションルートからの絶対パスはメッセージリソースに格納されており、その値を検索するためのキーを指定します。 |
いずれのタグでも、上記で指定された属性の内、1つは必ず指定しなければなりません。
リンクを指定する場合、同時にパラメータを指定する事があります。例えば以下のようにです。
<a href="test.jsp?sample=hello&sample2=goodby">...</a>
「?」と「&」を使用して、パラメータを指定します。上記と同じ方法も可能ですが、HTMLタグライブラリでは他にパラメータを1つ指定する場合と複数指定する場合と、別な方法が用意されています。
1つ指定する場合
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
paramId |
○ | 指定するパラメータの名前 | |
paramName |
○ | Java Beanをスコープ(application, session, request,page)から検索する際のキー。次のparamProperty属性が指定されない場合は、検索値はJava BeanではなくStringとみなして、パラメータの値として使用される。 | |
paramProperty |
○ | パラメータの値が入っているJava Beanのプロパティ名。 |
下記は検索してきた値がStringである場合の例です。
<% session.setAttribute("param1","hello"); %> ... <html:img src="test.jsp" paramId="sample" paramName="param1" />
以下のようなHTMLが生成されます。
<img src="test.jp?sample=hello">
複数指定する場合
複数指定する場合には、パラメータの名前と値が対になって格納された、java.util.Mapを利用します。
属性名 | 必須 | スクリプト 可能 |
説明 |
---|---|---|---|
name |
○ | Java Beanをスコープから検索する際のキーを指定。Java BeanはMapをプロパティとして持っている必要があります。また次のproperty属性を省略した場合には、検索値はJava Beanではなく、Mapとみなして使用されます。 | |
property |
○ | Mapが入っているJava Beanのプロパティ名を指定。Mapにはパラメータの名前と値が対になって格納されている必要があります。 |
下記はJava Beanとlinkタグの例です。これを実行すると、最初に例示したリンクが生成されます。
public class LinkParameter{ private Map parameters=new HashMap(); public LinkParameter(){ parameters.put("sample","hello"); parameters.put("sample2","goodby"); } public Map getParameters(){ return(parameters); } }
<% request.setAttribute("linkBean",new LinkParameter()); %> ... <html:link href="test.jsp" name="linkBean" property="parameters">...</html:link>
それぞれのタグは<a>タグのtarget属性、<img>タグのheight,width属性などHTMLでサポートされている属性もサポートしています。またimgタグはimageタグおよびBeanタグライブラリのwriteタグと同じく、メッセージリソースを使用するしないに関わらず設定しておかなければ動作しません。
(実習課題2)
以下のWebアプリケーションを、Strutsを用いて作成しなさい。
- linkタグにおいて、3種類の属性「href」「forward」「page」それぞれを使用したリンクを含める事。
- java.util.Mapを用いて、パラメータを複数指定する方法を試す事。