PGBox
P
G
Box

html linkタグ

htmlタグのメニューへ戻る



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

リンク<a></a>を出力します。


属性必須意味
pageURLをwebアプリケーション名以降のパスで指定。
hrefURLを<ahref="xxx">と同様のパス形式で指定。
actionURLをアクションパスで指定。
forwardURLにstruts-configの<global-forwards><forward>で定義された遷移先されたパスを使用する場合に<forwardname="xxx">で定義された値を指定する。
style同名の属性値が出力される。
styleClassclass="xxx"が出力される。
styleIdid="xxx"が出力される。
paramIdURLに単一のリクエストパラメータを追加する場合に指定。パラメータ名を指定する。
paramNameURLに単一のリクエストパラメータを追加する場合に指定。パラメータ値を取得するbean名を指定する。
paramPropertyURLに単一のリクエストパラメータを追加する場合に指定。パラメータ値をbeanから取得するプロパティ名を指定する。
paramScopeURLに単一のリクエストパラメータを追加する場合に指定。パラメータ値を保持するbeanを取得するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
nameURLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapを取得するbean名を指定する。
propertyURLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapをbeanから取得するプロパティ名を指定する。
scopeURLに複数のリクエストパラメータを追加する場合に指定。パラメータ値のMapを保持するbeanを取得するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
linkNamename="xxx"が出力される。
target_blank・_selfなどの表示ターゲットを指定する。同名の属性値が出力される。
anchorURLにページ内アンカーを追加する場合に指定。URLの末尾に#xxxが追加される。
indexed同名複数の入力フィールドを出力する場合に使用する。<logic:iterate>もしくは<nested:iterate>にネストした上で、この属性値をtrueに設定する。
indexIdindexedがtrueの場合に、インデックスを示すパラメータ名を指定する。デフォルトは"index"。
transaction2度押し防止のためのトランザクショントークンを、セッションから取得しURLパラメータに追加する場合にtrueを指定する。デフォルトはfalse。
accesskey同名の属性値が出力される。
tabindex同名の属性値が出力される。
module使用するモジュール名のプレフィックスを指定する。
bundleメッセージリソースを取得するリクエスト/セッションバインド名を指定。
useLocalEncodingURLのエンコーディングを行う際に、pageContext.getResponse().getCharacterEncoding()で得られるエンコード名を使用する場合にtrueを指定する。デフォルトの文字コードはUTF-8。
title同名の属性値が出力される。
titleKeytitleの値をメッセージリソースから取得する場合に、そのキーを指定する。
lang同名の属性値が出力される。
dir同名の属性値が出力される。
onblur同名の属性値が出力される。
onclick同名の属性値が出力される。
ondblclick同名の属性値が出力される。
onfocus同名の属性値が出力される。
onkeydown同名の属性値が出力される。
onkeypress同名の属性値が出力される。
onkeyup同名の属性値が出力される。
onmousedown同名の属性値が出力される。
onmousemove同名の属性値が出力される。
onmouseout同名の属性値が出力される。
onmouseover同名の属性値が出力される。
onmouseup同名の属性値が出力される。


html:linkタグで指定可能な遷移先の形式は以下の4種類になります。
<!-- (1) --><html:link page="/pages/aaa.jsp">アプリケーション名以降のURLリンク</html:link>

<!-- (2) --><html:link href="http://xxxx">href直接指定のリンク</html:link>

<!-- (3) --><html:link action="/sample">アクションへ遷移するリンク</html:link>

<!-- (4) --><html:link forward="sampleForward">グローバルフォワードへ遷移するリンク</html:link>

上記のJSPを実行すると、以下のようなhtmlが出力されます。このサンプルでのアプリケーション名は「struts-sample」です。
<!-- (1) --><a href="/struts-sample/pages/aaa.jsp">アプリケーション名以降のURLリンク</a>

<!-- (2) --><a href="http://xxxx">href直接指定のリンク</a>

<!-- (3) --><a href="/struts-sample/sample.do">アクションへ遷移するリンク</a>

<!-- (4) --><a href="/struts-sample/WEB-INF/view/aaa.jsp">グローバルフォワードへ遷移するリンク</a>


(1) アプリケーション名以降のURLで指定しています。

(2) href直接でURLを指定しています。<a href="xxx">と指定した場合とかわりません。

(3) アクションパスを指定しています。struts-configでは以下のように定義されています。
<action-mappings>
    <action path="/sample" name="SampleForm" type="pgbox.action.SampleAction" validate="false" scope="request">
リンクを押下した場合、pgbox.action.SampleActionの処理が呼び出される事となります。

(4) グローバルフォワードを指定しています。struts-configでは以下のように定義されています。
<global-forwards>
    <forward name="sampleForward" path="/WEB-INF/view/aaa.jsp"/>



URLにリクエストパラメータを追加する事も可能です。
方法は3種類あります。


【方法1】単一値のパラメータをURLに追加する。


フォームに、以下のようなプロパティが定義されており
public class SampleForm extends ActionForm {
    
    private String str1;
    
    ※ 以下、setter, getter
}

アクションでは以下のように処理したとします。
public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
    SampleForm form = (SampleForm) form0;

    form.setStr1("ABC");


プロパティstr1の値を、「param」という名前でアクション「/sample」のリクエストパラメータとして使用するには、JSPで以下のように記述します。
<html:link action="/sample" paramId="param" paramName="SampleForm" paramProperty="str1">リンク</html:link>

以下のようなhtmlが出力されます。リンクを押下した場合、アクション「/sample」では「param」という名前で値「ABC」が取得可能です。
<a href="/struts-sample/sample.do?param=ABC">リンク</a>


【方法2】Mapを使用して複数のパラメータをURLに追加する。


フォームには、java.util.Mapでパラメータ用のプロパティを定義しておきます。
public class SampleForm extends ActionForm {
    
    private Map<String, String> params;
    
    ※ 以下、setter, getter
}

アクションでは任意のパラメータ名で、Mapに値をセットしておきます。
public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
    SampleForm form = (SampleForm) form0;
    
    Map<String, String> params = new HashMap<String, String>();
    params.put("param1", "AAA");
    params.put("param2", "BBB");
    params.put("param3", "CCC");
    form.setParams(params);
    

フォームの値をリンクのパラメータで使用するには、JSPで以下のように記述します。
<html:link action="/sample" name="SampleForm" property="params">リンク</html:link>

以下のようなhtmlが出力されます。リンクを押下した場合、アクション「/sample」では「param1」「param2」「param3」のパラメータがそれぞれ取得可能です。
<a href="/struts-sample/sample.do?param1=AAA&amp;param2=BBB&amp;param3=CCC">リンク</a>


【方法3】paramタグを使用してURLにパラメータを追加する。


<html:param>タグを使用すると、柔軟で対応力の高いパラメータ追加を行う事ができます。

フォームに、以下のようなプロパティが定義されており
public class SampleForm extends ActionForm {
    
    private String param1;
    
    private String param2;
    
    private String param3;
    
    ※ 以下、setter, getter
}

アクションでは以下のように処理したとします。
public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
    SampleForm form = (SampleForm) form0;

    form.setParam1("AAA");
    form.setParam2("BBB");
    form.setParam3("CCC");
    

フォームの値をリンクのパラメータで使用するには、JSPで以下のように記述します。
<html:link action="/sample">
    リンク
    <html:param name="param1"><bean:write name="SampleForm" property="param1" /></html:param>
    <html:param name="param2"><bean:write name="SampleForm" property="param2" /></html:param>
    <html:param name="param3"><bean:write name="SampleForm" property="param3" /></html:param>
</html:link>

以下のようなhtmlが出力されます。
<a href="/struts-sample/sample.do?param1=AAA&amp;param2=BBB&amp;param3=CCC">リンク</a>





htmlタグのメニューへ戻る