isbn番号の入力チェックにStrutsのvalidateを使います。
input.doとinsertedit.doではActionFormを使う必要がない
ので、以下のように修正しました。これでbookCatalogForm
のvalidateメソッドは、list.doアクションとinsert.doアクション
の場合のみ実行されます。
struts-config.xml
-------------------------------------------------------
'-//Apache Software Foundation//DTD Struts Configuration 1.1//EN'
'http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd'>
name='bookCatalogForm'
validate='true'
input='/WEB-INF/jsp/input.jsp'>
name='bookCatalogForm'
validate='true'
input='/WEB-INF/jsp/insert.jsp'>
-------------------------------------------------------
BookCatalogFormでは正規表現を使ってisbn番号のチェックを行っています。
BookCatalogForm
-------------------------------------------------------
package action.form;
import java.util.List;
import java.util.regex.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class BookCatalogForm extends ActionForm{
private List bookList;
private String isbn;
private String title;
private String content;
public List getBookList() {
return bookList;
}
public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if(isbn!='' && isbn!= null){
Pattern ptn;
Matcher mch;
ptn = Pattern.compile('[0-9A-Z]{10}');
mch = ptn.matcher(isbn);
if(mch.find()!= true){
errors.add('isbn', new ActionMessage(
'isbn.invalid'));
}
}else {
errors.add('isbn', new ActionMessage(
'isbn.noinput'));
}
return errors;
}
public void setBookList(List bookList) {
this.bookList = bookList;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
-------------------------------------------------------
struts-config.xmlで指定したメッセージリソースファイルです。
application.properties
-------------------------------------------------------
errors.header=
errors.suffix=
errors.prefix=
errors.footer=
isbn.noinput = isbn番号を入力してください
isbn.invalid = isbn番号が不正です
-------------------------------------------------------
input.jspとinsert.jspでは、
input.jsp
-------------------------------------------------------
<%@taglib prefix='html' uri='http://jakarta.apache.org/struts/tags-html' %>
<%@taglib prefix='bean' uri='http://jakarta.apache.org/struts/tags-bean' %>
<%@taglib prefix='logic' uri='http://jakarta.apache.org/struts/tags-logic' %>
書籍登録
isbn番号
タイトル
概要
-------------------------------------------------------
