Struts2学習の理解促進!ざっくりイメージしてハードルを下げよう
Struts2の学習中、黙々とコードを書きうつしていくだけだとシンドイ気分になってくると思っています。
作成するファイル・書くコード量は多いくせに目の前の1つのファイル、1つの単語にしか意識が行かなくなってしまうので「なにやってるかよく分からない感」に遅かれ早かれ襲われる可能性が高いです。
僕がプログラマカレッジでやっていたStruts2の学習ステップが、今振り返ってみるとなかなか効果的だったのではないかと感じました。そのステップとは、
- まずは「どんなもんかな」程度で写経して動かしてみる
- 写経し終わっても全然分からないから、次へ進まずにノートへ絵に書きながらStruts2の全体像をざっくりイメージしようとした(グーグル先生に頼った)
- イメージが出来るようになったら写経開始。書きながら意味が分かるので納得しながら進められた
こんな感じです。
ポイントは、写経で丸写しして動かしてはみるけどそこで一旦立ち止まってStruts2全体像をざっくり考える、という点でした。
本記事は、ステップ②でイメージしたStruts2のざっくり全体像を「学習し始めのコツ」として僕同様勉強し始めのあなたへ共有してみます。
写経しても難しくて何だかよく分からなかったStruts2に対する苦手意識が少しだけ減る、そんな効果があるのではないかなーと期待しつつ。
難しく考えてしまいがちなStruts2は、最初はとにかく可能な限り簡略化してざっくりと全体をイメージするだけで1週間後の定着感が全然違ってきます。
思っているより、Struts2の大まかな動きは簡単で単純なんですよ。
※ 本記事は「とりあえず書いて動かしてみたけどよく分からん」という現在進行形で悩んでいる方を想定して書いています。詳細を省いたざっくり説明なので、まだ実際にコードを見たことも書いたこともない方は逆に混乱してしまう可能性があるかもしれない点だけご留意を。
ー もくじ ー
コツ① Struts2の構成要素はたった3つ
これから数多くのファイルを作成しコードを書いていくことになるでしょう。
しかし、いくつファイルを作成していったとしてもStruts2を使う開発に関連するファイルはたった3つの種類しかありません。
- JSPファイル
- struts.xmlファイル
- Actionクラスファイル
※以降、Actionファイルと呼称します
ファイルが何十何百出来上がろうとも、この3つの種類しかないので簡単!
「web.xml」など別ファイルも登場しますが頻繁に編集するものはこの3つなので、3つなんだなぁ・・・と思っておけばOKです。
コツ② struts2は処理の流れがワンパターン
ファイルの種類は3つでしたが、処理の流れはたった1つ。
例えば、JSPファイル上の送信ボタンやリンクをクリックしたとします。
すると、
struts.xmlを経由して処理主体であるActionファイルが受け取り、またstruts.xmlを経由してJSPファイルへと返ってくる
という流れで動作をします。常にstruts.xmlファイルが間に挟まっているということがわかりますね。
この流れに例外はなし、と覚えておけば問題ありません。
超単純だと思いませんか?
ただしその代わり、絶対、必ず、何があってもこの流れを思い浮かべながら写経をするようにしましょう。
JSPファイルの入力フォームのコードを写経している時は、struts.xmlに向かって動作指示を送る矢印が伸びるイメージを思い浮かべる。
struts.xmlを写経する時は、JSPファイルから伸びてきた指示を受け取ってActionファイルへ矢印を伸ばすイメージを思い浮かべる。
Actionファイルを写経する時は、何らか処理をした後に依頼元のstruts.xmlへと矢印を伸ばすイメージを思い浮かべる。
この「具体的な映像を思い浮かべる」という行動を取るか取らないかで定着率が段違いになるのは僕の経験上、明らかです。
コツ③ Actionファイルはsuccessかerrorを返すだけ
Actionファイルは処理担当なので、コードが複雑になって「こいつ結局何してるんだ?」となりやすいファイルです。
しかし、安心してください。途中にどんなことが書いてあろうと
struts.xmlに対して"success"か"error"か伝えるだけの役割
しか持っていません。
今取り組んでいる課題の、どのXXXAction.javaファイルを見ても
return SUCCESS; (もしくは"SUCCESS"の文字列が格納された変数)
return ERROR; (もしくは"ERROR"の文字列が格納された変数)
と書いてあるはずです。
つまりreturnに至るまでの処理が「成功したよ!」「失敗したよ!」と伝えるだけなのです。
もちろん間の処理を理解しないことにはどうにもなりませんが、まず第一歩目はこの大原則「途中で何が書いてあろうと "SUCCESS" か "ERROR" としか喋らない」とイメージしておくのが大事。
SUCCESSとかERRORとかそれだけ伝えてどうするか?
そんなことはどうでもいいのです。それは受け取ったstruts.xmlが判断することなので、次のコツ④を読んで解決。
SUCCESSやERROR以外にも、"return LOGIN" "return INPUT"なども喋り出すことに気付くときがそのうちやって来ます。
コツ④ struts.xmlに書いてあることは"そのまんま"
学習し始めで「とりあえず写経してみる」の段階だと、struts.xmlファイルはパッと見するとワケの分からない英語の羅列に見えると思います。
しかし、最初に理解すべき重要な部分は単純なことしか書いてません。
重要なのは、この <action name=〜 から始まる部分です。
ここも初見だと何を書いているか分からないように見えますが、以下の通り頭からお尻まで順番に日本語に翻訳するだけでクリアになります。
ここでもう一度Struts2を使った場合の以下全体像を眺めてみると、上記①②③④の翻訳文がしっくりくるのではないでしょうか。
③のexecuteメソッドなんて図に書いてないやん?と思ったあなたは、お手元のActionファイルを見てみましょう。
public String execute() {
・・・
}
というメソッドを実行してるのが必ず見つかるはずです。
Struts2を簡単に捉える方法 まとめ
ちょっとしつこいかもしれませんが、再度4つのコツを一気にまとめます。同じものでも何度も目にすることでイメージが残る効果を狙って・・・。
- Struts2には、JSPファイル・struts.xml・Actionファイルの3つしか登場人物がいないものと考える
- Struts2は、処理の流れパターンが1つだけ
- 複雑に見えがちなActionファイルは、実はsuccessかerrorを返すだけ
- 複雑に見えがちなstruts.xmlファイルは、実は翻訳するとそのまんま
これら4つのイメージをStruts2学習の一番最初の方で持っておけば「こいつワケわからん」という抵抗は減るのでは、と思います。
特に②の流れ自体は単純じゃん!という感覚を得て欲しいですね。「分からない」と感じて圧倒されてしまうのは「本来は単純化できるものを難しく考えすぎている」ことが原因ではないかと。
こういったことを把握するために写経の手を止めたことで僕がカリキュラムを進めるスピードは一旦落ちてしまいましたが、その分理解が進みコードが頭に定着したので結果としてその後進むスピードは倍になった感覚です。
正直、ワケも分からない状態で写経には何の意味もないと思っているので
- とにかく映像としてイメージしてみる
- とにかくノートに図示してみる
このあたりの作業を取り入れてみることをおすすめします。
長い記事を読んでいただきありがとうございました。