PGBox
P
G
Box

html imgタグ

htmlタグのメニューへ戻る



使用した環境
JDK 6 Update 11
struts 1.3.10

画像<img>を出力します。


属性必須意味
page画像のURLを、アプリケーション名以降のパスで指定する。src="/アプリケーション名[指定値]"が出力される。
pageKey画像のURLをメッセージリソースから取得する場合に、そのキーを指定する。アプリケーション名以降のパスで定義されている必要がある。
src画像のURLを指定する。src="[指定値]"が出力される。
srcKey画像のURLをメッセージリソースから取得する場合に、そのキーを指定する。
action画像をアクションで動的に作成する場合に、アクションパスを指定する。
paramId画像URLに単一のリクエストパラメータを追加する場合に指定。パラメータ名を指定する。
paramName画像URLに単一のリクエストパラメータを追加する場合に指定。パラメータ値を取得するbean名を指定する。
paramProperty画像URLに単一のリクエストパラメータを追加する場合に指定。パラメータ値をbeanから取得するプロパティ名を指定する。
paramScope画像URLに単一のリクエストパラメータを追加する場合に指定。パラメータ値を保持するbeanを取得するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
name画像URLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapを取得するbean名を指定する。
property画像URLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapをbeanから取得するプロパティ名を指定する。
scope画像URLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapを保持するbeanを取得するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
useLocalEncodingURLのエンコーディングを行う際に、pageContext.getResponse().getCharacterEncoding()で得られるエンコード名を使用する場合にtrueを指定する。デフォルトの文字コードはUTF-8。
style同名の属性値が出力される。
styleClassclass="xxx"が出力される。
styleIdid="xxx"が出力される。
align画像の回り込み方法を指定する。right・left・top・middle・bottomで指定する。同名の属性値が出力される。
border画像の枠線の太さを指定する。同名の属性値が出力される。
width画像の幅を指定する。同名の属性値が出力される。
height画像の高さを指定する。同名の属性値が出力される。
hspace画像の左右の余白を指定する。同名の属性値が出力される。
vspace画像の上下の余白を指定する。同名の属性値が出力される。
imageNamename="xxx"が出力される。
usemap画像内に複数リンクを埋め込む場合に指定する。同名の属性値が出力される。
ismap同名の属性値が出力される。
bundleメッセージリソースを取得するリクエスト/セッションバインド名を指定。
alt同名の属性値が出力される。
altKeyaltの値をメッセージリソースから取得する場合に、そのキーを指定する。
title同名の属性値が出力される。
titleKeytitleの値をメッセージリソースから取得する場合に、そのキーを指定する。
module使用するモジュール名のプレフィックスを指定する。
locale使用するロケールを取得するbean名を指定する。
dir同名の属性値が出力される。
lang同名の属性値が出力される。
onclick同名の属性値が出力される。
ondblclick同名の属性値が出力される。
onkeydown同名の属性値が出力される。
onkeypress同名の属性値が出力される。
onkeyup同名の属性値が出力される。
onmousedown同名の属性値が出力される。
onmousemove同名の属性値が出力される。
onmouseout同名の属性値が出力される。
onmouseover同名の属性値が出力される。
onmouseup同名の属性値が出力される。



webアプリケーション名以降のパスで画像のURLを指定するには以下のようにします。
<html:img page="/images/sample.png" />

以下のようなhtmlが出力されます。
<img src="/struts-sample/images/sample.png">

webアプリケーション名である"/struts-sample"が自動的に先頭に追加されます。
これは、request.getContextPath()で得られる値と同じです。


通常の<img>タグの場合と同様のURL形式で指定するにはsrc属性を使用します。
src属性の値に対しては、加工は行われないので、指定値がそのまま出力されます。
<html:img src="/images/sample.png" />

以下のようなhtmlが出力されます。
<img src="/images/sample.png">




アクションで動的に作成した画像を表示する場合は、以下のようにアクションパスを指定します。
<html:img action="/sample" />

画像処理アクションに対してパラメータが必要な場合は、以下のようにしてbeanからパラメータ値を取得してURLに追加する事も可能です。
ここでは、仮に「SampleForm」というフォームのプロパティ「imgId」に、画像処理アクションにて使用するパラメータ値「img123」が保持されているものとします。
SampleActionで使用するリクエストパラメータの名前は「imgParam」としています。
<html:img 
    action="/sample" 
    paramId="imgParam" 
    paramName="SampleForm" 
    paramProperty="imgId" />

以下のようなhtmlが出力されます。
<img src="/struts-sample/sample.do?imgParam=img123">
複数のリクエストパラメータを使用する場合は、paramId・paramName・paramPropertyのかわりに、name・propertyでパラメータ名とその値を保持しているMapを指定します。


この例の場合、アクションパス"/sample"に該当するアクションSampleActionに、以下のように画像バイナリを書き出す処理を記述しておく事によって、動的な画像表示が可能になります。
public class SampleAction extends Action {
    
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
        SampleForm form = (SampleForm) form0;
        
        // 画像URLに追加されたパラメータを取得
        String imgParam = form.getImgParam();
        
        // パラメータに応じた画像のパスを取得する処理
        String path = ...
        
        // 画像バイナリをクライアントへ出力する
        ServletOutputStream out = response.getOutputStream();
        FileInputStream in = null;
        
        try {
            in = new FileInputStream(path);
            byte[] buffer = new byte[1024];
            int readed = -1;
            
            while ((readed = in.read(buffer)) != -1) {
                out.write(buffer, 0, readed);
            }
            out.close();
        } finally {
            try { in.close(); } catch (Exception e) {}
        }
        
        return null;    // 画面遷移を行わないのでnullを返す。
    }
    
}






htmlタグのメニューへ戻る