Struts2

s:url

概要 アドレスを出力するカスタムタグ 属性 属性名 効果 namespace struts.xmlのpackageタグのnamespace属性を指定する action struts.xmlのactionタグのname属性を指定する method actionクラスのメソッド名を指定する 使用方法 %{id属性で指定した値}とす…

s:file

commons-fileupload.jarが1.0だった場合、例外が発生し、使用できない。

Could not find action or result

Could not find action or resultは、Actionクラスが返す文字列がstruts.xmlの対応するresultタグのname属性と一致しない場合、発生する。

name属性について

同じ名前のname属性を持ったフォームが複数個ある場合、setterの引数をListにすると取得可能になる。 例 jsp側 Actionクラス側 public class Hoge extends ActionSupport { public setHoge(List hoge) { //hoge.size() == 3 //テキストフィールドに入力され…

インターセプターからのセッション取得

取得方法 HttpSession session = ServletActionContext.getRequest().getSession(); 使用方法 session.getAttribute(セッションに格納した文字列);

s:selectで要素選択時にサーバに情報を飛ばす方法

を定義する id, namespace, action属性をformタグのように設定。 methodタグはs:submitタグのように設定する。 を定義する onchange属性 ↓ this.form.action = '%{のid名}' ↓ this.form.submit(); 間違ってる確率大。

session

-自分で作成したインターセプターを使用すると、セッションがsetSessionメソッドに自動で渡らないらしい。 というか、新しいページに画面遷移するたびにアクションクラスのインスタンスそのものが変わっているみたい。 インターセプターを使用する場合は手動…

ServletActionContextを使用しようとするとコンパイルエラーになる ↓ Tomcatのディレクトリに入っているcommon\lib\servlet-api.jarをインポートする

chain ↓ Action ↓ jsp chain ↓ 自作のインターセプター ↓ Action#execute(); ↓ jsp インターセプターを噛ませてchainすると、アクションクラスへの遷移時にexecuteを通るかもしれない

基礎

なにそれ? アクションクラスの実行前に入力チェックなどの処理を行うもの。 使用方法 「アクションクラス名-validation.xml」を、アクションクラスと同じファイルパス上に置く。 中身の記述は以下を参考に。 (3) アクションクラスのプロパティ名 バリデーシ…

requiredstring

なにそれ? 入力チェックを行うバリデーション。 文字列がnullあるいは""だった場合にエラーメッセージを返します。 使用方法 基礎を参照。 messageタグのinnerHTMLはs:fielderrorタグで出力できます。 「Could not find action or result」というエラーが出…

s:password

属性 属性名 効果 name アクションクラスのsetterかgetterを指定すると、値のやり取りが可能になる value 初期表示される文字列 showPassword 初期表示される文字列を表示するかどうかを決めるtrue,falseを指定

s:textfield

属性 属性名 効果 name アクションクラスのsetter,getterを指定すると、そのsetter,getterに対応する value 初期表示する値

 基礎

参考 TIPS - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク

s:iterator

属性 属性 効果 value アクションクラスのget○○の○○部分を記述する。getterの戻り値はjava.util.Collectionかjava.util.Iterator 使い方 valueで表示対象を指定いく。 valueに表示する対象を指定する 対象がjava.util.Collectionかjava.util.Iteratorをネス…

s:select

属性 属性名 設定事項 list Collection/Array/Map/Enumeration/Iteratorのどれかを指定する指定されたデータが表示される。 name 選択された値を返すメソッド・Beanを記載する headerKeyheaderValue プルダウンで初期表示されるデータ disabled ? 参考:sel…

interceptor

作成から使用までの流れ com.opensymphony.xwork2.interceptor.Interceptorを実装したクラスを作成。 ※com.opensymphony.xwork2.interceptor.AbstractInterceptorでもよい intercept(ActionInvocation)に処理を記述する。 struts.xmlにinterceptorを登録する…

セッション

生成〜使用 org.apache.struts2.interceptor.SessionAwareをアクションクラスに実装。 setSession(Map)の引数で渡されたMapが、セッションに格納されたデータになる。 setSession(Map)ではフィールドに値を受け渡すだけにし、execute()などでMapを取り扱って…

バリデーション

バリデーションで「Could not find action or result」というエラーが出る場合の処置 バリデーションの入力チェックに引っかかった場合、バリデーションはresultタグのname="input"に記述されているものに遷移する。 resultタグにname="input"が定義されてな…

Beanの使用方法

・name="アクションクラスのsetter名(setAならa).タグの名前" ・setterだけだとフィールドに値が入らないみたいなので、getterも作っとく事

struts.xml

イメージ <package name="" namespace="" extends=""> <action name="" class=""> <result name=""> </result> </action> </package> packageタグ 属性名 効果 name Javaパッケージ名 namespace s:formタグのnamespace属性で指定する extends "struts-default" actionタグ 属性名 効果 name s:formタグのaction属性で指定する class Javaのクラス名。packageタグのnameで指定…

textfieldタグ

属性名 効果 size テキストボックスの横の長さ

formタグ

前提 以下を宣言しておく。 <%@taglib uri="/struts-tags" prefix="s" %> 属性について 属性名 効果 namespace struts.xmlで定義された『package』タグの『namespace』属性と同じものを定義する action struts.xmlで定義された『action』タグの『name』属性…

空のプロジェクト作成

プロジェクト作成 1.Struts2を解凍する。 2.解凍したフォルダの「\apps\struts2-blank-2.0.12.war」の拡張子を「zip」に変更、解凍。 3.解凍したフォルダをプロジェクト名に変更し、Eclipseのワークスペースに置く。 4.Eclipseで「Javaプロジェクトの作成」→…

HTMLとの対応表

最初にこれを宣言しておく。 <%@ taglib uri="/struts-tags" prefix="s" %> HTML Struts2 備考 form s:form input type="text" s:textfield input type="password" s:password input type="submit" s:submit ※<>は抜いてある