[Seasar-user:15748] Re: [SAStruts]DBへの複数情報一括登録処理におけるバリデーション
Takeshi Motegi
[E-MAIL ADDRESS DELETED]
2008年 9月 12日 (金) 18:38:10 JST
お世話になっております。茂木です。
すいません自己解決しました。ActionMessagesクラスの仕様を
理解していませんでした。
Strutsで手軽に出来てしまうのですね。。。
以下のように変更を加えて、期待通りの動作を確認しました。
EmployeeForm.java(検証メソッド)
・ActionMessages#addの第一パラメータにテキストボックスの
name属性の値を設定するように変更
-------------
public ActionMessages checkRows() {
ActionMessages errors = new ActionMessages();
int i=0;
for( EmployeeForm f : empInsertItems ) {
if( f.name.length()==0 ) {
errors.add("empInsertItems[" + i + "].name", new
ActionMessage(
"errors.required"));
}
i++;
}
return errors;
}
-------------
edit_for_bulk_add.jsp(入力画面)
・テキストボックス"name"に「errorStyleClass="err"」を追加
・"err"スタイルクラスを定義している'/css/sa.css'のlink追加
-------------
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Employee Bulk Insert</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>
<h4>一括登録入力</h4>
<html:errors />
<s:form>
<table border="1">
<tr>
<th>Name</th>
<th>JobType</th>
<th>Salary</th>
<th>Department</th>
</tr>
<c:forEach var="empInsertItems" items="${empInsertItems}">
<tr>
<td><html:text name="empInsertItems" property="name"
errorStyleClass="err" indexed="true" /></td>
<td><html:select name="empInsertItems" property="jobType"
indexed="true">
<html:option value="CLERK">CLERK</html:option>
<html:option value="SALESMAN">SALESMAN</html:option>
<html:option value="MANAGER">MANAGER</html:option>
<html:option value="ANALYST">ANALYST</html:option>
<html:option value="PRESIDENT">PRESIDENT</html:option>
</html:select></td>
<td><html:text name="empInsertItems" property="salary"
indexed="true" /></td>
<td><html:select name="empInsertItems"
property="departmentId" indexed="true">
<html:option value=""></html:option>
<c:forEach var="d" items="${deptItems}">
<html:option
value="${f:h(d.id)}">${f:h(d.name)}</html:option>
</c:forEach>
</html:select></td>
</tr>
</c:forEach>
</table>
<br />
<input type="submit" name="confirm_for_bulk_add" value="登録内容確認" />
<input type="submit" name="index" value="戻る"/>
</s:form>
</body>
</html>
-------------------------
以上
Seasar-user メーリングリストの案内