前回は、Spring+Strutsを使って書籍の
一覧画面を出力しました。
検索条件(isbn番号)の入力画面から
入力されたisbn番号で検索するように
しましょう。
まず検索条件入力画面はSpringMVCバージョンの時に使ったinput.jspをほとんど
そのまま使えます。
input.jsp
-------------------------------------------------------------------
DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-31j'>
<title>書籍検索条件入力画面title>
head>
<body>
<h2>書籍検索条件入力h2>
<form method='POST' action='list.do'>
isbn番号<input type='text' name='isbn'>
<br>
<input type='submit' name='serch' value='検索'>
form>
body>
html>
-------------------------------------------------------------------
このJSPを直接呼び出すのではなくStrutsを使って/input.doで呼び出すようにします。
具体的には新しくActionクラス(InputActionクラス)を作成します。このActionクラスは
ただinput.jspを表示するだけのものです。
public class InputAction extends ActionSupport{
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward('success');
}
}
struts-config.xml
-------------------------------------------------------------------
'-//Apache Software Foundation//DTD Struts Configuration 1.1//EN'
'http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd'>
-------------------------------------------------------------------
さらに入力されたisbn番号を受け取るActionFormクラスであるBookCatalogForm
クラスにisbn番号のセッタ/ゲッタを定義します。
そして、BookCatalogActionクラス(一覧表示アクションクラス)を呼び出します。
呼び出しはlist.doです。
BookCatalogActionクラスでは入力されたisbn番号をActionFormクラス
(BookCatalogFormクラス)から取得してgetBookList()メソッドのパラメタ
に指定します。
public class BookCatalogAction extends ActionSupport{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
BookCatalogForm bookCatalogForm = (BookCatalogForm)form;
// AppricationContex取得
ApplicationContext applicationContext = getWebApplicationContext();
BookCatalog bookCatalog = (BookCatalog)applicationContext.getBean('bookCatalog');
// 書籍一覧情報の取得
List bookList = bookCatalog.getBookList(bookCatalogForm.getIsbn()) ;
bookCatalogForm.setBookList(bookList);
return mapping.findForward('success');
}
}
以上で、検索条件からisbn番号を入力して結果を一覧表示するアプリケーションを
Spring + Strusに移植完了しました。
