Apache Strutsとは? Java Webアプリケーションフレームワーク入門

Apache Strutsとは、Java用のWebアプリケーションフレームワークです。この記事では、Strutsの使い方をサンプルを交えてご紹介します。

Strutsタグライブラリ

Strutsは、以下のタグライブラリが含まれる。

Strutsタグライブラリ
タグライブラリ 説明
Bean JavaBeanへのアクセス手段や新たなBean定義の手段を提供する。
HTML 主にHTMLフォームをStrutsのフォームと結びつけるための手段を提供する。
Logic 主に条件分岐や繰り返しなどの制御構造を作成するために使用される。
Nested 階層かられたプロパティに効率的にアクセスするための機能を提供する。
Tiles Webページを複数の表示領域に分けて、レイアウトやタイルそのものを共有することで、生産性、保守性を向上させる仕組みを提供する。

プロパティ

多くのStrutsのタグはproperty属性を持っており、これによりBeanのプロパティにアクセスすることができる。

property="value"と指定すると、getValue()メソッドが呼び出される。

プロパティが格納先として使用される場合、setValue()メソッドが呼び出される。

property="foo.bar.baz"と指定すると、getFoo().getBar().getBaz()が呼び出される。

クッキーを取得する。

<bean:define>

Beanプロパティを取得する。

HTTPヘッダを取得する。

<bean:include>

JSPページの出力を取得する。

<bean:message>

<bean:message>とは、MessageResourcesからメッセージを取得して表示するApache Strutsタグである。

構文

<bean:message attribute="value" ... />

attributeには、次に示す属性を指定できる。

key
メッセージキー
name
メッセージキーが格納されているBean名
property
Beanのプロパティ名
arg0
arg1
arg2
arg3
arg4
メッセージ内の {} に代入する文字列
bundle
MessageResourcesオブジェクトを格納しているapplicationスコープのBean名
locate
Locateオブジェクトを格納しているsessionスコープのBean名
scope
スコープ

<bean:message key="${msgKey}" />

<bean:page>

pageContextから暗黙オブジェクトを取得する。

<bean:parameter>

リクエストパラメータを取得する。

<bean:resoruce>

Webアプリケーションのリソースを取得する。

<bean:size>

配列やコレクションの要素数を取得する。

<bean:struts>

Apache Strutsの設定ファイル struts-config.xml を取得する。

<bean:write>

Beanのプロパティを表示する。

<html:base>

<base>タグを出力する。

<html:button>

<input type="button">タグを出力する。

<html:cancel>

<input type="submit">タグを出力する。validate回避用。

<html:checkbox>

<input type="checkbox">タグを出力する。

<html:errors>

requestスコープに格納されているActionErrorsオブジェクトの内容を出力する。

<html:erros [attribute=value ...] />
bundle
リソースファイルを保持しているBean名
locale
Localeオブジェクトを格納しているsessionスコープのBean名
name
エラーメッセージが格納されているBean名
property
Beanのプロパティ名。省略した場合はすべてが表示される。
<html:errors />

<html:file>

<input type="file">タグを出力する。

<html:form>

<form>タグを出力する。

<html:frame>

<frame> タグを出力する。

<html:hidden>

<input type="hidden">タグを出力する。

<html:hidden attribute=value ... />
property
Beanのプロパティ名(必須項目)
styleId
識別子
value
フィールドの初期値
<html:hidden property="salary" styleId="salary" value="${salary}" />

<html:html>

<html>タグを出力する。

<html:image>

<input type="image">タグを出力する。

<html:img>

<img>タグを出力する。

<html:javascript>

validate用JavaScriptを出力する。

<a>タグを出力する。

<html:messages>

requestスコープに格納されているActionMessageオブジェクトの内容を出力する。

<html:multibox>

<input type="checkbox">タグを出力する(配列型)。

<html:option>

<option>タグを出力する。

<html:options>

Collection型(配列)を利用し<option>タグを出力する。

<html:optionsCollection>

Collection型(配列)を利用し<option>タグを出力する。

<html:password>

<input type="password">タグを出力する。

<html:radio>

<input type="radio">タグを出力する。

<html:reset>

<input type="reset">タグを出力する。

<html:rewrite>

リンク先URL文字列を出力する。JavaScript用。

<html:select>

<select>タグを出力する。

<html:submit>

<input type="submit">タグを出力する。

<html:text>

<input type="text">タグを生成する。

<html:text>タグの属性
属性 説明
property Beanのプロパティ名(input要素のname属性)
maxlength 入力できる最大文字数
style スタイルシート
styleClass スタイルシートのクラス(input要素のclass属性)
styleId 識別子(input要素のid属性)

<html:textarea>

<textarea> タグを生成する。

<html:textarea>タグの属性
属性 説明
property Beanのプロパティ名(textarea要素のname属性)
cols テキストエリアの桁数
rows テキストエリアの行数
style スタイルシート
styleClass スタイルシートのクラス(textarea要素のclass属性)
styleId 識別子(textarea要素のid属性)

<logic:empty>

属性が空の場合、処理を実行する。

<logic:equal>

属性が指定した値と等しい場合、処理を実行する。

<logic:forward>

リクエストを指定したパスへ転送する。

<logic:greaterEqual>

属性が指定した値以上の場合、処理を実行する。

<logic:greaterThan>

属性が指定した値より大きい場合、処理を実行する。

<logic:iterate>

指定したコレクションで処理を実行する。

<logic:lessEqual>

属性が指定した値以下の場合、処理を実行する。

<logic:lessThan>

属性が指定した値より小さい場合、処理を実行する。

<logic:match>

属性が指定した文字列を含む場合、処理を実行する。

<logic:notEmpty>

属性が空でない場合、処理を実行する。

<logic:notEqual>

属性が指定した値と等しくない場合、処理を実行する。

<logic:notMatch>

属性が指定した文字列を含まない場合、処理を実行する。

<logic:notPresent>

属性が存在しない場合、処理を実行する。

<logic:Present>

属性が存在する場合、処理を実行する。

<logic:redirect>

指定したパスへリダイレクトする。

<logic:messagesPresent>

requestスコープに格納されているActionErrosオブジェクトが存在する場合、処理を実行する。

name
メッセージが格納されているBean
property
Beanのプロパティ名

<logic:messsagesNotPresent>

requestスコープに格納されているActionErrorsオブジェクトが存在しない場合、処理を実行する。

Struts 2タグライブラリ

Struts 2タグライブラリでは、JSPタグに加えて次のタグを使用できる。

タグ 説明
<s:if> 条件が真の場合、処理を実行する。
<s:a> HTMLの<a>タグを生成する。
<s:checkbox> HTMLの<input type="checkbox">タグを生成する。