前提
Javaについての学習を行い、フレームワーク(struts2)で簡単なWebアプリを作成してみましたが、フレームワークが裏側で何を実行しているのかまったく理解できません。
下記の抜粋したソースコードだと画面でフォームに入力した文字列が、testAction.javaのString firstNameに代入されますが、なぜgetter, setterを書くだけでそうなるのか知りたいのですが、Eclipseでデバッグしようと思い、Actionクラスにブレイクポイントを置いても既に、値が格納されているため、過程を知ることができません。
また、以下の投稿に「リクエストパラメータに対するActionクラスのフィールドとget/setメソッドがなかった場合は、そのパラメータは破棄されます。」と記載がありますが、これもどこ(どのクラス?)で判断されているのか知りたいです。
https://qiita.com/alpha_pz/items/d377f832ee662e2bd50c
該当のソースコード
[test.jsp]
<s:form action="testAction"> <s:textfield name="firstName" label="Your Name"></s:textfield> <s:submit value="Submit"></s:submit> </s:form>
[testAction.java]
public class TestAction { String firstName; public String execute() { System.out.println("My name is " + firstName); return "success"; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } }
試したこと
以下のURLからStruts 2.3.37のSource
・struts-2.3.37-src.zipをダウンロードしてみましたが、ファイルの数が多すぎでどこを見ればよいのか見当もつきませんでした。
https://struts.apache.org/download.cgi
知識に乏しく抽象的な質問になってしまいましたが、ご回答いただければ幸いです。
こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。
回答1件
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。