LittleSoft J-Programming
3.4.5. 入力フォームと関連付け
この章では、WebSQL テーブルオブジェクトの項目と画面入力フォームの関連付け(バインド)を行い、
データ型や Null 不許可等のデータベース定義との整合性をチェックする手順について説明します。

WebSQL テーブルオブジェクトと入力フォームを関連付ける
HTML テンプレートにて、WebSQL テーブルオブジェクトと入力フォームとを関連付けます。
また、WebSQL テーブルオブジェクトにエラーメッセージが格納されいる場合、それを表示する記述を行います。
また、WebSQL テーブルオブジェクトにエラーメッセージが格納されいる場合、それを表示する記述を行います。
<!-- 入力チェックボタンを配置 -->
<input type="button" value="入力チェック" onclick="ls.exec('confirmEmpList');" />
…
<!-- エラーメッセージが存在する場合は出力 -->
#if($tableEmp.hasError)
#foreach( $err in $tableEmp.errors )
<img alt="" src="../i/icon_failed.gif" /><span class="warn">$err</span>
#end
<img alt="" src="../i/icon_remaining.gif" />
<a href="javascript:ls.exec('cancelUpdates')"><span class="note">もとに戻す</span></a>
#end
#if($messages != "")
<img alt="" src="../i/icon_success.gif" /><span class="info">$messages</span>
#end
…
<!-- 社員一覧を表示 -->
#foreach($emp in $tableEmp.Rows)
<tr>
<td>$emp.rowNumber</td>
<td><input type="text" $emp.name.textBind /></td>
<td>
<select $emp.deptCode.nameBind>
<option value="">--</option>
#foreach( $dept in $tableDept.Rows )
<option value="$dept.code"
#if($emp.deptCode==$dept.code) selected="selected" #end>
$dept.name</option>
#end
</select>
</td>
<td><input type="text" $emp.enterDate.textBind /></td>
<td><input type="radio" $emp.sex.checkBind('1') />男
<input type="radio" $emp.sex.checkBind('2') />女</td>
<td><input type="text" $emp.salary.textBind /></td>
<td><textarea $emp.memo.nameBind>$emp.memo</textarea></td>
</tr>
#end
<input type="button" value="入力チェック" onclick="ls.exec('confirmEmpList');" />
…
<!-- エラーメッセージが存在する場合は出力 -->
#if($tableEmp.hasError)
#foreach( $err in $tableEmp.errors )
<img alt="" src="../i/icon_failed.gif" /><span class="warn">$err</span>
#end
<img alt="" src="../i/icon_remaining.gif" />
<a href="javascript:ls.exec('cancelUpdates')"><span class="note">もとに戻す</span></a>
#end
#if($messages != "")
<img alt="" src="../i/icon_success.gif" /><span class="info">$messages</span>
#end
…
<!-- 社員一覧を表示 -->
#foreach($emp in $tableEmp.Rows)
<tr>
<td>$emp.rowNumber</td>
<td><input type="text" $emp.name.textBind /></td>
<td>
<select $emp.deptCode.nameBind>
<option value="">--</option>
#foreach( $dept in $tableDept.Rows )
<option value="$dept.code"
#if($emp.deptCode==$dept.code) selected="selected" #end>
$dept.name</option>
#end
</select>
</td>
<td><input type="text" $emp.enterDate.textBind /></td>
<td><input type="radio" $emp.sex.checkBind('1') />男
<input type="radio" $emp.sex.checkBind('2') />女</td>
<td><input type="text" $emp.salary.textBind /></td>
<td><textarea $emp.memo.nameBind>$emp.memo</textarea></td>
</tr>
#end
「 $tableEmp.hasError 」 、「 $tableEmp.errors 」
エラーを含んでいるか否か、エラーメッセージ(配列)を表します。「 $emp.xxx.nameBind/textBind/ checkBind 」
WebSQL テーブルオブジェクト現在行( =$emp )の対象カラムと入力フォームを関連付けます。- nameBind:「 name=”***”」
- textBind:「 name=”***” value=”***”」
- checkBind:「 name=”***” value=”***” (checked)」
画面より送信された入力フォームの内容をチェックする
送信された入力内容のチェック・WebSQL テーブルオブジェクトへの格納は自動で実行されます。
LSJ の内部では、「 checkRequest 」メソッドが自動的に実行されています。
※詳細については、「4.6 CheckRequest、Nullable について」を参照してください。
その際に関連付けられたカラムの設定(データ型/フォーマット/ Null 不許可/文字列長/数値精度)の
チェックを行い、エラーがあった場合は WebSQL テーブルオブジェクトのプロパティにエラー内容を追加します。
当メソッドは、エラーがない場合は True、エラーが存在した場合は False を返却します。
LSJ の内部では、「 checkRequest 」メソッドが自動的に実行されています。
※詳細については、「4.6 CheckRequest、Nullable について」を参照してください。
/* ページ送信内容のチェックをします。 */
public void confirmEmpList() throws Exception {
// WebSQLTableオブジェクトにエラーリストがない場合、メッセージ設定
if (tableEmp.getErrors().size() == 0)
messages = 問題ありません。";
// 再表示
show();
}
public void confirmEmpList() throws Exception {
// WebSQLTableオブジェクトにエラーリストがない場合、メッセージ設定
if (tableEmp.getErrors().size() == 0)
messages = 問題ありません。";
// 再表示
show();
}
送信内容のチェックをする(「 checkRequest 」メソッド)
送信内容が WebSQL テーブルオブジェクトに反映されます。その際に関連付けられたカラムの設定(データ型/フォーマット/ Null 不許可/文字列長/数値精度)の
チェックを行い、エラーがあった場合は WebSQL テーブルオブジェクトのプロパティにエラー内容を追加します。
当メソッドは、エラーがない場合は True、エラーが存在した場合は False を返却します。
ページを表示する
ボタンをクリックして、入力チェックが正しく行われることを確認します。