Struts関連
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→SAStruts関連
→[[JSP関連]]
→[[Java関連]]
→JavaのWebアプリ開発
→JBoss Seam関連
→DI(依存性注入)
→Webアプリ開発
→トランザクショントークン
→Webサーバ
#contents
----
*Webサイト [#t1934283]
-http://struts.apache.org/
-http://struts.apache.org/release/2.3.x/docs/struts-2-mav...
**環境構築 [#n8ff53b9]
大雑把な流れは以下の通り
-JDKをインストール
-Tomcatをインストール
-Eclipseをインストール
-TomcatプラグインをEclipseに追加
--http://www.eclipsetotale.com/tomcatPlugin.html
-[[Struts環境構築>http://tech.1-east.net/201004/225.html]]
**Tomcat [#p6704e5a]
-http://tomcat.apache.org/
-[[【はじめての方向け】Apache Tomcatのインストール方法を...
**ドキュメント [#td181fde]
-http://struts.apache.org/release/2.3.x/index.html
-http://struts.apache.org/release/2.3.x/docs/tutorials.html
*入門記事、リファレンス [#n810abe3]
-[[Strutsについて>https://qiita.com/adevalue/items/1b4dea...
-[[Strutsの常識を知り、EclipseとTomcatの環境構築 (1/4)>ht...
-[[@いう間にWebアプリを作れる「Struts 2」入門>http://www...
--いまいち使えない記事…
-[[Webアプリの常識をJSPとStrutsで身に付ける>http://www.at...
-[[Apache TomcatとJakarta TaglibsとApache Strutsとその他...
-[[Strutsを使うWebアプリケーション構築術>http://www.atmar...
-[[忘れっぽいエンジニアのための jakarta Strutsリファレン...
-[[Struts>http://www.ne.jp/asahi/hishidama/home/tech/stru...
-[[ケーピーの技術ノート Struts関連>http://kpnote.cocolog-...
-[[struts「設計パターン」についてまとめてみる>http://leds...
*Tips [#ec437f51]
-[[LookupDispatchActionクラス>http://www.javaroad.jp/open...
--1フォームに複数のsubmitボタンがあり、どれを押すかによ...
-[[ForwardActionクラス>http://www.javaroad.jp/opensource/...
--単純に画面遷移だけを行いたいときに使うActionクラス
-[[DynaActionForm>http://www.atmarkit.co.jp/fjava/rensai3...
--フォームの項目をstruts-config.xmlに設定して自動生成できる
--<form-property>タグで指定した内容に合わせてformクラスを...
--但し使用できるプロパティの型に制限がある。
--値取得の例
DynaActionForm dForm = (DynaActionForm)form;
int n = ((Integer)dForm.get("xxx")).intValue();
-[[エラーメッセージにヘッダーとフッターをつける>http://st...
--エラーメッセージのプロパティファイルに以下の値を作成する
--errors.header : エラーメッセージ出力前に1回出力され...
--errors.footer : エラーメッセージが全て出力後に1回出...
--errors.prefix : 各エラーメッセージの最初に出力される
--errors.suffix : 各エラーメッセージの最後に出力される
-[[validate()メソッドによる入力値検証>http://www.stackast...
-http://strutstestcase.sourceforge.net/
-[[StrutsTestCase>http://634.ayumu-baby.com/strutstestcas...
--Actionクラスの単体テストをするためのフレームワーク
--Actionによる画面遷移と定義されたActionErrorのチェックを...
--JUnitと組み合わせて動作するように設計されている
--Struts1.3.5から単体テスト機能がStrutsに追加されたのでそ...
-リクエストヘッダの参照
HttpServletRequest req = RequestUtil.getRequest();
Enumeration<String> e = req.getHeaderNames();
while( e.hasMoreElements() ) {
String s = e.nextElement();
System.out.println(s + "=" +req.getHeader(s) );
}
-セッション情報のバインドとアンバインドのタイミングで何か...
--HttpSessionBindingListener を実装すればよい
-セッションのロケールを変更する
HttpServletRequest req = RequestUtil.getRequest();
HttpSession session = req.getSession();
session.setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);
-[[メッセージリソースファイルの日本語処理>http://www.java...
-[[Struts でフォームに配列を使う>http://www.res-system.co...
-[[配列のデータを取得したい。>http://www.atmarkit.co.jp/b...
-[[StrutsでHTMLの表示や入力に配列を使用したい>http://www....
-[[バリデータの自作>http://kamakura.cool.ne.jp/oppama/ssj...
-[[Strutsでテキストをダウンロードする>http://kamakura.coo...
-[[Strutsでのプルダウンの作り方>http://www.masatom.in/puk...
-[[URLの取得>http://www.memorycraft.jp/2009/02/sastrutsur...
@Resource
protected Map requestScope;
@Execute(validator = false)
public String test(){
String requestUri = (String)requestScope.get("jav...
String contextPath =(String)requestScope.get("jav...
String servletPath =(String)requestScope.get("jav...
String pathInfo =(String)requestScope.get("javax....
String queryString =(String)requestScope.get("jav...
System.out.println(requestUri);
System.out.println(contextPath);
System.out.println(servletPath);
System.out.println(pathInfo);
System.out.println(queryString);
return "test.html";
}
--もしくは request.getURI()
--関連:[[サーブレットパスの構成要素を取得する>http://www....
getContextPath コンテキストパス
getServletPath サーブレットパス
getPathInfo 拡張パス
getPathTranslated 拡張パス(物理パス)
getRequestURL リクエスト時のURL
getRequestURI コンテキストパスから拡張パスまで
-[[サーブレット仕様の認証を使わずにgetRemoteUserやisUserI...
--独自の認証機構を使うと自由にログイン処理を記述できる代...
--しかし独自の認証でもHttpServletRequestWrapperとFilterを...
-[[画面遷移とアクセス制御の方法>http://www.atmarkit.co.jp...
-[[「どのスコープにもBean org.apache.struts.taglib.html.B...
--どっかタグが抜けてたり閉じ忘れてたり。
--formでないのにproperty設定してるタグを使っている。form...
*struts-config.xmlのタグ [#fc59d962]
-<global-exceptions> 例外処理の設定
--[[例外発生時のカスタムエラーページの設定>http://charie9...
--やり方はいろいろあるが、struts-config内におけるエラーハ...
ず考えられる手段だといえるだろう。
<global-exceptions>
<exception key="error.global" type="java.lang.Exception"...
</global-exceptions>
(struts-config.xml)
-<global-forwards> 共通の遷移
-<action-mappings> Actitonクラスと画面遷移(forward)の設定
--forwardはmapping.findforward()の引数に渡す文字列
-<message-resources> メッセージリソース
--(ベース名).properties 日本語を使うときはnative2asciiを...
-<plug-in> プラグインの設定
-<form-beans> フォームクラスの設定
-<data-sources> データソースの設定
終了行:
→SAStruts関連
→[[JSP関連]]
→[[Java関連]]
→JavaのWebアプリ開発
→JBoss Seam関連
→DI(依存性注入)
→Webアプリ開発
→トランザクショントークン
→Webサーバ
#contents
----
*Webサイト [#t1934283]
-http://struts.apache.org/
-http://struts.apache.org/release/2.3.x/docs/struts-2-mav...
**環境構築 [#n8ff53b9]
大雑把な流れは以下の通り
-JDKをインストール
-Tomcatをインストール
-Eclipseをインストール
-TomcatプラグインをEclipseに追加
--http://www.eclipsetotale.com/tomcatPlugin.html
-[[Struts環境構築>http://tech.1-east.net/201004/225.html]]
**Tomcat [#p6704e5a]
-http://tomcat.apache.org/
-[[【はじめての方向け】Apache Tomcatのインストール方法を...
**ドキュメント [#td181fde]
-http://struts.apache.org/release/2.3.x/index.html
-http://struts.apache.org/release/2.3.x/docs/tutorials.html
*入門記事、リファレンス [#n810abe3]
-[[Strutsについて>https://qiita.com/adevalue/items/1b4dea...
-[[Strutsの常識を知り、EclipseとTomcatの環境構築 (1/4)>ht...
-[[@いう間にWebアプリを作れる「Struts 2」入門>http://www...
--いまいち使えない記事…
-[[Webアプリの常識をJSPとStrutsで身に付ける>http://www.at...
-[[Apache TomcatとJakarta TaglibsとApache Strutsとその他...
-[[Strutsを使うWebアプリケーション構築術>http://www.atmar...
-[[忘れっぽいエンジニアのための jakarta Strutsリファレン...
-[[Struts>http://www.ne.jp/asahi/hishidama/home/tech/stru...
-[[ケーピーの技術ノート Struts関連>http://kpnote.cocolog-...
-[[struts「設計パターン」についてまとめてみる>http://leds...
*Tips [#ec437f51]
-[[LookupDispatchActionクラス>http://www.javaroad.jp/open...
--1フォームに複数のsubmitボタンがあり、どれを押すかによ...
-[[ForwardActionクラス>http://www.javaroad.jp/opensource/...
--単純に画面遷移だけを行いたいときに使うActionクラス
-[[DynaActionForm>http://www.atmarkit.co.jp/fjava/rensai3...
--フォームの項目をstruts-config.xmlに設定して自動生成できる
--<form-property>タグで指定した内容に合わせてformクラスを...
--但し使用できるプロパティの型に制限がある。
--値取得の例
DynaActionForm dForm = (DynaActionForm)form;
int n = ((Integer)dForm.get("xxx")).intValue();
-[[エラーメッセージにヘッダーとフッターをつける>http://st...
--エラーメッセージのプロパティファイルに以下の値を作成する
--errors.header : エラーメッセージ出力前に1回出力され...
--errors.footer : エラーメッセージが全て出力後に1回出...
--errors.prefix : 各エラーメッセージの最初に出力される
--errors.suffix : 各エラーメッセージの最後に出力される
-[[validate()メソッドによる入力値検証>http://www.stackast...
-http://strutstestcase.sourceforge.net/
-[[StrutsTestCase>http://634.ayumu-baby.com/strutstestcas...
--Actionクラスの単体テストをするためのフレームワーク
--Actionによる画面遷移と定義されたActionErrorのチェックを...
--JUnitと組み合わせて動作するように設計されている
--Struts1.3.5から単体テスト機能がStrutsに追加されたのでそ...
-リクエストヘッダの参照
HttpServletRequest req = RequestUtil.getRequest();
Enumeration<String> e = req.getHeaderNames();
while( e.hasMoreElements() ) {
String s = e.nextElement();
System.out.println(s + "=" +req.getHeader(s) );
}
-セッション情報のバインドとアンバインドのタイミングで何か...
--HttpSessionBindingListener を実装すればよい
-セッションのロケールを変更する
HttpServletRequest req = RequestUtil.getRequest();
HttpSession session = req.getSession();
session.setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);
-[[メッセージリソースファイルの日本語処理>http://www.java...
-[[Struts でフォームに配列を使う>http://www.res-system.co...
-[[配列のデータを取得したい。>http://www.atmarkit.co.jp/b...
-[[StrutsでHTMLの表示や入力に配列を使用したい>http://www....
-[[バリデータの自作>http://kamakura.cool.ne.jp/oppama/ssj...
-[[Strutsでテキストをダウンロードする>http://kamakura.coo...
-[[Strutsでのプルダウンの作り方>http://www.masatom.in/puk...
-[[URLの取得>http://www.memorycraft.jp/2009/02/sastrutsur...
@Resource
protected Map requestScope;
@Execute(validator = false)
public String test(){
String requestUri = (String)requestScope.get("jav...
String contextPath =(String)requestScope.get("jav...
String servletPath =(String)requestScope.get("jav...
String pathInfo =(String)requestScope.get("javax....
String queryString =(String)requestScope.get("jav...
System.out.println(requestUri);
System.out.println(contextPath);
System.out.println(servletPath);
System.out.println(pathInfo);
System.out.println(queryString);
return "test.html";
}
--もしくは request.getURI()
--関連:[[サーブレットパスの構成要素を取得する>http://www....
getContextPath コンテキストパス
getServletPath サーブレットパス
getPathInfo 拡張パス
getPathTranslated 拡張パス(物理パス)
getRequestURL リクエスト時のURL
getRequestURI コンテキストパスから拡張パスまで
-[[サーブレット仕様の認証を使わずにgetRemoteUserやisUserI...
--独自の認証機構を使うと自由にログイン処理を記述できる代...
--しかし独自の認証でもHttpServletRequestWrapperとFilterを...
-[[画面遷移とアクセス制御の方法>http://www.atmarkit.co.jp...
-[[「どのスコープにもBean org.apache.struts.taglib.html.B...
--どっかタグが抜けてたり閉じ忘れてたり。
--formでないのにproperty設定してるタグを使っている。form...
*struts-config.xmlのタグ [#fc59d962]
-<global-exceptions> 例外処理の設定
--[[例外発生時のカスタムエラーページの設定>http://charie9...
--やり方はいろいろあるが、struts-config内におけるエラーハ...
ず考えられる手段だといえるだろう。
<global-exceptions>
<exception key="error.global" type="java.lang.Exception"...
</global-exceptions>
(struts-config.xml)
-<global-forwards> 共通の遷移
-<action-mappings> Actitonクラスと画面遷移(forward)の設定
--forwardはmapping.findforward()の引数に渡す文字列
-<message-resources> メッセージリソース
--(ベース名).properties 日本語を使うときはnative2asciiを...
-<plug-in> プラグインの設定
-<form-beans> フォームクラスの設定
-<data-sources> データソースの設定
ページ名: