Step3. サーバサイドから取得した値を画面表示する
STEP3では、赤枠の部分を作成します。
サーバーサイドJavaScript(SSJS)ファイルを作成し、サーバサイドとクライアントサイドでデータのやりとりを実装してみましょう。
ここでは、サーバーサイドJavaScript(SSJS)に「Hello World」という固定の文字を返す処理を記述します。
画面上の呼出ボタンをクリックすると、サーバーサイドJavaScript(SSJS)が呼び出され、「Hello World」が画面に表示されるように実装します。
画面を修正する(dev_tour.html)
HTMLファイルを修正します。
- %プロジェクト名%/src/main/jssp/src/ssfa_tour/pages/dev_tour/dev_tour.html
<div class="ssfa-list-menu ssfa-list-menu--expand">...</div>
の中を修正します。
<div class="ssfa-list-menu ssfa-list-menu--expand">
<!-- STEP2のブロックの下に以下を追加する -->
<!-- STEP3開始 -->
<div id="devTour_section3" class="ssfa-content" style="padding:0.75rem;width:108rem; margin: 0rem auto 0rem auto">
<div class="ssfa-content-block ssfa-item-margin-top ssfa-animation--fadein-5"style="flex:1">
<ul class="ssfa-content-block__title" >
<li>STEP3:サーバーサイドで取得したデータを画面に表示する</li>
</ul>
<div class="ssfa-content-block__item-area" >
<!-- コメント(入力不可) -->
<div class="ssfa-item-margin--bottom">
<div class="ssfa-item-area--col">
<label class="ssfa-item-label">コメント</label>
<div class="ssfa-item-value" style="margin-right: 0; width: 300px;">
<imart type="imuiTextbox" id="devTour_comment_display" name="devTour_comment_display" readonly/>
</div>
</div>
</div>
<!-- ボタン -->
<div class="ssfa-flex ssfa-item-margin--all">
<div class="ssfa-item-area--col" style="flex:1; text-align: center;">
<imart type="imuiButton" id="devTour_get" value="呼出"
class="imui-small-button"/>
</div>
</div>
</div>
</div>
</div>
<!-- STEP3終了 -->
</div>
クライアントサイド処理(dev_tour.js)を修正する
呼出ボタンがクリックされた時に、REST APIを呼び出してサーバーサイドの処理を実行するようにイベントを設定します。
- %プロジェクト名%/src/main/public/ssfa_tour/csjs/pages/dev_tour/dev_tour.js
STEP2の記述の後に下記追加します。
/**STEP2の下に追加する**/
/**STEP3開始**/
// 呼出ボタンクリックイベント登録
$(document).on('click', '#devTour_get', function () {
//REST APIを呼び出してサーバーサイドからレスポンスを取得する
let getResult = scmnAjaxRestGetData("api/dps/ssfa_tour/v1/get_comment_step_three", false, {});
// コメントに、サーバーサイドから取得した値を設定する
$("#devTour_comment_display").val(getResult.comment_display);
});
/**STEP3終了**/
備考
REST APIの呼び出しは、本製品の内部APIscmnAjaxRestGetData
関数を利用しています。
scmnAjaxRestGetData
は、 jQuery.ajaxをラッピングしている関数です。
関数の詳細については、デプロイ済み環境の以下ファイルを参照してください。
- /resin-pro-4.0.xx/webapps/%コンテキストパス%/scmn/csjs/common.js