- 5.1. ActionForm Beanのvalidateメソッド
- 5.2. エラーメッセージの表示
- 5.3. HTMLタグライブラリ
- 5.4. formタグ/submitタグ/cancelタグ/resetタグ
5.4. formタグ/submitタグ/cancelタグ/resetタグ
formタグはHTMLの<form>、submitタグは<input type="submit">、resetタグは<input type="reset">を置き換えて使用するものです。cancelタグもsubmitタグと同じく<input type="submit">を生成するのですが、少し動作が異なります。いずれのタグも属性については、ほぼHTMLにおけるものと同じになっています。以下はformタグの主要属性一覧です。
action |
HTTPリクエストの送信先URLを指定します。ただしHTMLの<form>タグとは異なり、Webアプリケーションルートからのパスで指定します。 |
---|---|
enctype |
HTMLの<form>タグと同じです。フォームの内容をどのMIME形式にエンコーディングして送信するか指定します。ファイルアップロードを行う場合以外では、通常指定しません。 |
method | HTTPメソッドを指定します。GETかPOSTです。省略した場合はデフォルトでPOSTが使用されます。 |
以下はformタグを使用した例です。
... <html:form action="/sample/ProductInput.do" method="post"> ... </html:form> ...
formタグのaction属性の値によって、このフォームがどのActionForm Beanに対応するか判定します。textタグやcheckboxタグなど、フォームコンポーネントを置き換えるHTMLタグは、formタグで囲まれた範囲内で使用することが絶対条件です。
続いてsubmitタグ/cancelタグの主要属性一覧です。いずれも<input type="submit">タグを生成しますが、cancelタグを使用すると、ActionForm Beanのvalidation機能を回避するようになります。
value |
ボタンのラベルを指定します。また次のproperty属性が指定された場合には、パラメータ値として送信されます。 |
---|---|
property |
パラメータ名。HTMLにおけるname属性に対応する。ただしcancelタグにおいてこの属性にデフォルト値以外の値を指定すると、validation機能を回避しなくなります。デフォルト値は「org.apache.struts.taglib.html.CANCEL」です。 |
cancelタグで作成したsubmitボタンを押した場合、ActionForm Beanのvalidationを回避し、Actionクラスのexecuteメソッドが直接呼び出されます。このボタンを押してexecuteメソッドが呼び出されたかどうかは、ActionクラスのisCancelledメソッドで判定します。
public class ProductOutputAction extends Action{ public void execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse){ if(isCancelled(request)){ // キャンセル時の処理 ... } } }
resetタグは<input type="reset">を生成します。主要属性は1つで、以下のとおりです。
value |
ボタンのラベルを指定します。省略した場合はボディ部の文字列が、ラベルとして使用されます。 |
---|
(実習課題3)
実習課題2のWebアプリケーションを改良しなさい。
- HTMLタグライブラリのformおよびsubmitタグを使用すること。
- cancelタグを追加し、submitタグとの違いを確認する事。