前回は、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'>




  



  
'/list' type='action.BookCatalogAction' name='bookCatalogForm'>
       
  

   
  
  
  

-------------------------------------------------------------------

さらに入力された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に移植完了しました。