目次へ

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を用いて、パラメータを複数指定する方法を試す事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp