585x02●JSP・BeansのMVアーキテクチャ(ユーザID作成)
これまで作成していたMVCアーキテクチャの実装をMVアーキテクチャに変更することで、BeanをJSPから直接参照する方法を実習します。
これまでのBeanはコンストラクタ引数で値を設定してインスタンス化し、コンストラクタ内で業務ロジックを処理する仕様にしていました。
JSPから拡張タグを使って直接Beanを呼び出す場合、引数指定のコンストラクタで実体化することはできません。
つまりBeanは引数無しのデフォルトコンストラクタを使ってインスタンス化し、Setterメソッドで値を設定して業務ロジックのメソッドを起動し、結果をgetterメソッドで受け取ることになります。
この時privateで宣言されたクラス変数をプロパティと呼び、set〇〇〇 get〇〇〇の〇〇〇はプロパティと名前が一致しなければなりません。
ユーザID作成アプリケーションの実装ーMVモデル
以下の仕様に沿ってWebアプリケーションを作成してください。
新たにプロジェクトを作成します。プロジェクト名はlibconとします。
【仕様】
ユーザ名を設定すると設定したユーザ名にaso.を付加して
ユーザIDを4桁の乱数で返してくれるWebアプリケーションを作成する
※ユーザIDは確定4桁です。なのでこれ↓じゃダメです。
new java.util.Random().nextInt(10000)
クラス図
-------------------------------------- //クラス名
UserIdBean
-------------------------------------- //フィールド
- userName:String
- userId:int
-------------------------------------- //メソッド
+ UserIdBean() //コンストラクタ
+ execute():void //ロジック
+ setUserName(userName:String):void //セッター
+ getUserName():String //ゲッター
+ getUserId():int //ゲッター
--------------------------------------
- private
+ public
【課題1】
①ユーザIDの作成用JavaBeansクラスを作成します
libconプロジェクトを右クリック→新規→クラス
パッケージ:jp.ict.aso.model
名前:UserBean
ソースコード:考えましょう
②ユーザ名を入力しBeanを実体化するJSPファイルを作成します
libconプロジェクトを右クリック→新規→その他→Web→JSPファイル
保存場所:libcon/src/main/webapp/ ← ここに保存ですよ!
ファイル名:userId.jsp
ソースコード:考えましょう
ヒント:●と△と□を埋めましょう
<%@ page contentType="text/html; charset=UTF-8" %>
<jsp:useBean id="●" scope="page"
class="jp.ict.aso.model.UserIdBean" />
<html>
<head>
<title>ユーザID作成</title>
</head>
<body>
<h1>ユーザ名変換とID作成を行います</h1>
<hr>
<form method="POST" action="userId.jsp">
ユーザ名: <input type="text" name="□"> <br>
<input type="submit" value="送信">
</form><br>
<jsp:setProperty name="●" property="□" />
<% ●.execute(); %>
<ul>2種類の方法で出力します
<li>ユーザ名 : <%= ●.getUserName() %></li>
<li>ユーザ名 : <jsp:getProperty name="●" property="□" /></li>
<li>ユーザID : <%= ●.getUserId() %></li>
<li>ユーザID : <jsp:getProperty name="●" property="△" /></li>
</ul>
</body>
</html>
③Webアプリケーションを実行します
JSPファイル(userId.jsp)を実行します!!
※日本語の名前が通りますか?日本語を通してうまくいったらスクショを提出してください
※最初の起動時はユーザ名はaso.<未設定>でユーザIDは0とします
【課題1】
現在のuseId.jspは拡張タグでBeanへのパラメータが設定されています。
この部分↓です。
<jsp:setProperty name="●" property="□" />
これをJavaのコードで設定するよう変更してください。
※userNameがnullのときの処理が必要です!
【課題2】
以前作成した運勢判断のクラス「OmikujiBean.java」を拡張タグだけで出力するjspファイル(omikujiTag.jsp)を作成してください。
【課題3】
以前作成した運勢判断のクラス「OmikujiBean.java」を拡張タグを使わずにJavaのコードだけで出力するjspファイル(omikujiCode.jsp)を作成してください。