Recommended
PPTX
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
PDF
What's new in Spring Boot 2.6 ?
PDF
PDF
PDF
PDF
今から始めるUbuntu入門_202307.pdf
PDF
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
PDF
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
PPTX
Network architecture design for microservices on GCP
PDF
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
PDF
PDF
PDF
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PDF
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
PDF
PPTX
PPTX
Modern CI/CD Pipeline Using Azure DevOps
PDF
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
PDF
さくらのVPS で IPv4 over IPv6ルータの構築
PDF
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
PPT
SAStruts Seminar In Tripodworks
PDF
More Related Content
PPTX
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
PDF
What's new in Spring Boot 2.6 ?
PDF
PDF
PDF
PDF
今から始めるUbuntu入門_202307.pdf
What's hot
PDF
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
PDF
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
PPTX
Network architecture design for microservices on GCP
PDF
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
PDF
PDF
PDF
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PDF
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
PDF
PPTX
PPTX
Modern CI/CD Pipeline Using Azure DevOps
PDF
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
PDF
さくらのVPS で IPv4 over IPv6ルータの構築
PDF
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
Similar to Struts2を始めよう!
PPT
SAStruts Seminar In Tripodworks
PDF
PPT
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
PPT
OSC2008 Tokyo/Spring REST勉強夜会
PDF
PDF
PPT
PPT
PDF
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee
PDF
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
PDF
PDF
PDF
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
PDF
【第13回RxTStudy勉強会】Redmine BacklogsプラグインでScrum開発!~Redmineでアジャイルに開発しよう
PDF
ソフトウェア工学2023 04 開発プロセスモデル
PDF
PDF
PDF
企業におけるSpring@日本springユーザー会20090624
PDF
チケット駆動開発によるアダプタブル・ウォータフォール開発
More from Shinpei Ohtani
PDF
PDF
AWS Lambda and Amazon API Gateway
PDF
PDF
JVM的な何か@JVM Operation Casual Talk
PDF
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
PDF
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
PDF
PDF
PPTX
PDF
PPTX
PPT
PPT
PDF
PDF
PPT
PPT
Struts2を始めよう! 1. 2. 3. 自己紹介 大谷 晋平 (Shinpei Ohtani) HN : shot6 or shot ISID 勤務 Web 開発者 / オープンソース開発 Java/ActionScript/JavaScript/Silverlight/C# コンタクト先 ブログ : http://d.hatena.ne.jp/shot6/ Twitter : shot6 Skype : shot_6 4. 自己紹介 ( 続き ) オープンソース T2 フレームワーク 近代的な Web アプリに向いたシンプルなフレームワーク http://code.google.com/p/t-2/wiki/Index 5. Struts とは ? Struts Java の Web フレームワーク Servlet と JSP をベースにしている MVC pattern2 ベースのアーキテクチャ Apache Software License2 http://struts.apache.org/ で開発中 6. Struts1 とは ? Struts1 2002 年以来 Web フレームワークのデファクトスタンダード PofEAA でいうところの Front controller pattern ActionServlet XML でコンポーネントを設定する 開発者は Action と ActionForm, jsp を作成 Action はユーザからのリクエストを受け付けるテンプレートメソッドパターンの実装 ActionForm は DTO 7. Struts2 とは ? Struts2 とは Struts1 とは 全く違う ! 最新は 2.1.6-ga. ベースは WebWork というフレームワーク その中でも Xwork core を使用 POJO でも出来る Action を作成 ActionForm はもう作成しない. Action が兼務. 基本的にはフィルタパターンとコマンドパターン プラグインな仕組み 複数のテンプレートエンジンに対応 8. 9. 10. Action ユーザのアクションを受け付けるクラス Xwork2 の Action インタフェースを実装 または POJO で以下のメソッドを持つように作成 String execute() なメソッド struts.xml で execute メソッドの代替を指定 struts2-convention-plugin の @Action を使う サンプルをみると、どれも Action インタフェースを継承しているけども。。。 11. Action( つづき ) その他 Action での注意点 Jsp などからアクセスされる拡張子のデフォルトは .action または何もなし Action はチェインして実行する事が出来る Action は xml 設定かアノテーションで指定できる 12. 13. Action 設定 Login アクション (mailreader2.Login) Login_input -> /Login.jsp Login_cancel -> Welcome アクションにリダイレクト Login_expired -> ChangePassword アクションチェーン Exception mapping 14. アノテーションで Action 設定 幾つかだけ紹介すると @Result : 画面遷移用 @Action : アクションメソッドを指定する @Actions :複数の呼び出しを同一メソッドに指定する 15. Result Xwork2 の Result インタフェースを実装 Action の結果を生成する : ServletDispatcherResult(default) ServletRedirectResult StreamResult JasperReportsResult from jasper-report-plugin FreeMarkerResult ChartResult and so on…. 16. Result( 続き ) Result は以下の 2 通りの方法で設定 xml <result name="login" type="redirectAction">Login_input</result> アノテーション @Result(name = "list", value = "listPeople.action", type = ServletRedirectResult. class) 17. 18. 19. Interceptor( 続き ) Interceptor こそが Struts2 拡張そのもの . Spring との AutoWired の連携 デバッグ 例外ハンドリング ファイルアップロード トークン生成とバリデーション セキュリティチェック 20. 21. 22. 23. Convention plugin プラグイン例 1 CoC を実現する Convention plugin Converntion over configuration( 設定よりも規約を重視する ) Struts2 はゼロコンフィギュレーションをうたっている ディレクトリを規約を頼りにトラバースしてコンポーネントを見つけるテクニック 24. Convention plugin( 続き ) Struts2 の規約詳細 クラス名は XxxAction のようにするとアクションとみなされる . 例 1 : examples.action.HogeAction 結論としては /hoge.action と解釈される “ action|actions|struts|struts2 ” のどれかにパッケージ名がマッチするとそこをルートとしてみなす 次に 、 クラス名から“ Action” を削除して、小文字にする 最後に “ .action” を最後につける -> hoge.action 25. Convention plugin( 続き 2) 規約 例 2 : examples.action.mine.MyAction 結論としては、 /mine/my.action Example.action パッケージをルートとみなす サブパッケージ (mine) はアクセスされる url の一部になる 結論としては : /mine/my.action 26. 27. 28. 29. REST plugin REST-like なリクエストを扱うプラグイン Rails の REST-like な規約にインスパイア Convention plugin をさらに拡張 Example examples.hoge.FooController -> /foo 成功すると、 foo-success.jsp に遷移 失敗すると、 foo-failed.jsp に遷移 30. REST の規約 Rails の REST-like な規約 GET: /movies => method="index” GET: /movies/Thrillers => method="show", id="Thrillers” GET: /movies/Thrillers;edit => method="edit", id="Thrillers” GET: /movies/Thrillers/edit => method="edit", id="Thrillers” GET: /movies/new => method="editNew” POST: /movies => method="create” 31. 32. 33. 34. Struts1 plugin レガシーな Struts1 コードを Struts2 で動かす Action と ActionForm を変更無しで動かす commons-validator もサポートする Struts2 はバリデータ部分も Xwork ベース ただし、 Struts1 のタグリブはいっさい動かない 35. 36. Struts2 のメリット・デメリット メリット 仕組みを知っていれば拡張性は非常に高い プラグインが最初から大量に用意されており、自製しなくてもよい場合がある Jsp 以外のテンプレートエンジンと簡単に連携 jsp/freemarker/velocity Jsp のビューコンポーネントやタグリブも豊富 37. Struts2 のメリット・デメリット デメリット プログラミングモデルが混在していて一つじゃないので混乱の元。一つに統一すべき。 保守性の低い CoC を過剰に使っている convention プラグインはあまり良いとは言えない XWork2 ベースなので Xwork2 と Struts2 でいったりきたりしないといけない 一つに統一してしまうのが吉 設定ファイルの継承などはいらない Jar ファイル内の XML ファイルは探しにくい 38. 39. Struts2 のベストプラクティス 2 Spring が使えるので出来るだけ使う または Guice/Seasar2/Lucy などを使う Struts.xml には画面遷移とインタセプタの指定 DI コンテナの設定ファイルにコンポーネントとスコープの管理 Convention プラグインを使う場合は規約と影響範囲を最小限に絞り込む 40. Struts2 リソース Struts2 tutorials http://struts.apache.org/2.1.6/docs/tutorials.html Struts2 developer guide http://struts.apache.org/2.1.6/docs/guides.html Plugins http://struts.apache.org/2.1.6/docs/plugins.html 41.