ドーモ、Struts=サン。Dragothです。 Struts殺すべし、慈悲は無い。
書きかけです。
やらかしてた
「1.3.10」です。「1.310」と入れてたので修正。
書き始めたいきさつ
仕事の都合でStruts1.3.10について学ぶことになったはいいものの、
資料があっても古い上に、新しい日本語の資料がほぼ、いや、まったくといっていいほどない。
Web上の使い方は書き方バラバラだったり書いても動かなかったりでひたすらに苦労する。
会社に教えてくれる人もいないので独学になるが、どうしていいのか分からない。
なのでとりあえず現状色々集めた知識をまとめておいておきつつGithubも生かして教えてもらえたらな、というところから。
色々集めた知識の集積と現状の理解の整理として書いていきます。
いまだにStrutsにおけるハローワールド相当のフォーム作成が全うに動かない初心者なので、突っ込みや暖かいご指摘をお願いします。
ソースコードは後程GitHubにて上げていきます。
最終的にはまとめて現行で使えるStruts記事にできたらいいなぁと思います。
何が知りたいか
Web3.0、現行のJava基盤で動くWeb.XMLを使わない形でのStrutsの使い方を覚えたい。
現状の理解から書いてみる
まず、基礎となるのはJSPとサーブレットの知識。
全体的に網羅していないと歯が立たない。(doGetメソッドの使い方など。)
スッキリわかるサーブレット・JSPなど読むべし。コレでも足りないかもしれない。
そして、StrutsはModel-View-Controllerモデルに沿って作られたフレームワークであり、
StrutsはControllerの部分に相当するものである。
現状においてStrutsは既にEOL(サポート切れ)を迎えているが、
いまだになんだかんだで使用されている企業は多い。
なので最低限でいいので使えるようになっておかねばならない。いい加減に死ねばいいのに
そして、javaの@WebServletアノテーション使用の場合の基本的な作成の流れとしては、
index.jsp編集→JSP・アクションクラス作成→Struts-Config.XML編集→Web.XML編集(taglib要素編集)
の流れを繰り返すことになる。
@Webservletアノテーションを使用すれば、
XML内部に記載する.do等の属性を記載しないで済む、らしい。
こうすることでXMLが内部でこんがらがることを極力防ぎつつ進めていくことが大事。
3.0でも2.X系の書き方は可能だが、今の段階ではレベルが高いかもしれない。
極力現行最新でやりやすいやり方学んでからでも遅くないだろうと思う。
サーブレット仕様3.0とStruts1.3.10があり、別々に策定されている。
@ITさんの記事が詳しい。サーブレット仕様の現行は3.1だが十分役に立つ。
http://www.atmarkit.co.jp/ait/articles/1104/12/news134.html
というかいっそこれ勉強対象を1.2.9に先祖返りしたほうが幸せかもしれない
なんとなくわかってきたけどこれフレームワークというよりライブラリ集に近い何かじゃ(ry
問題点
1、全体的な書き方もそうだが、@Webservletアノテーションの使い方がいまいちつかめていない。
引数に文字列リテラルでURLから見た飛び先を指定してやればいいようだが、
どうも挙動がつかめていない。
2、資料、テキストがあまりに少なすぎる。
最低限読めなくてはならないが、どうにもこうにもこれでは手が出せない。
というか見つけたはいいけれどどれも書き方がバラバラで困る。
飛んできたトマホーク
中途半端でも書いたらツイッター方面からトマホークが飛んできました。
※動画はイメージです
https://youtu.be/10D_V9JU0uk
サーブレット仕様とStruts1.3.10を混同するなとのこと。
正直今まで混ざったままだったので本当にありがたい。
これをもとに再度勉強しつつ書いていきます。
とりあえず書いてみる
今行っている環境設定から。
1、
今回使用したのはEclipseのPleiades4.4Luna-32bit、fullバージョン。
窓の杜のリンクに飛ばされるのでそこから自己解凍形式で落とす。
現在配布されているフルバージョンのZIPはなぜか解凍が失敗する。
名前短縮を行い、Win7の標準展開を使用も効果がない。
自己解凍形式の物だと正常に解凍できるのでこれを利用する。
2、
その後、Struts公式サイトへ。1.3.10をダウンロード。
Struts-1.3.10-all.zipを通常通り解凍後、Struts-1.3.10-allフォルダー内、
appsフォルダの中にあるwarファイルを確認する。
今回は「struts-blank-1.3.10」を使用する。
warファイルの拡張子をzipに変えて解凍。Lhaplus等で直接解凍できるならそれでもかまわない。
(ZIPファイルをそのまま取り込む手法もあるらしい。
確かにお手軽ではある。あるけれどどうだろう……。)
解凍後のフォルダ内、WEB-INF→lib内のjarファイルを確認。今回はこれを使用する。
3、
インストール後立ち上げ、
「パースペクティブを開く」から「JavaEE」を選択し、JavaEEを使用可能にする。
右上のJavaEEをクリック、モードを切り替える。
その後、左上の「ファイル」から「新規」→「動的プロジェクト」を選択。
プロジェクト作成画面でプロジェクト名を「Struts」。
ここで完了としないこと。「次へ」をクリックしていき、
最後の画面で「WebXMLデプロイメント記述子の生成」をクリックしてチェック、完了する。
これで大枠となるプロジェクトのひな型が出来上がる。
4、
プロジェクトフォルダ内のWebContentフォルダ内WEB-INFフォルダ、
その中にあるlibフォルダに2で準備したjarファイルを全てドラッグアンドドロップで入れる。
(インポートのほうがいいのか? 実際どちらが正解かまだつかめていない。)
これで開発の準備が整う。準備自体は簡単だが書くとなるとまた難しい。