入力フォームに記入し、追加ボタンを押すと該当するレコードを
DBから引っ張ってきて画面に表示する、というものを作っているんですが
複数回行うとその都度画面が初期化されるので1レコード分しか表示されません。
画面を表示してる間はどんどん追加されていく仕様にしたいです。
どのように変更を加えるとよいでしょうか。
strutsのhiddenタグ使うのかなあとか考えてますがどうなんでしょう。
ご助言承りたく投稿させていただきました。よろしくお願いします。
以下コード
jsp
<%@ taglib prefix="s" uri="/struts-tags"%> <s:textfield name="searchBox"> <input type="button" onclick="searchAdd()" value="追加"> <table> <s:iterator value="myList" status="rowstatus"> <tr> <td><s:property value="myList.itemName" /></td> <td><s:property value="myList.itemStatus1" /></td> <td><s:property value="myList.itemStatus2" /></td> </tr> </s:iterator> </table> <s:submit id='myListSet' value="検索" method='myListSet' /> <!--非表示ボタン-->
Javascript
1function searchAdd() { 2 document.getElementById('myListSet').click(); 3}
Java
1public String myListSet() { 2MyTestAccess access = new MyTestAccess(getDbAccessInfo()); 3myList = access.selectMyList(searchbox); //DBからsearchboxが一致するレコードを取得する 4return "execute"; //画面(jsp)を再表示する 5} 6 7//MyTestAccessクラス 8public ArrayList<MyTestEntity> selectMyList(String search) { 9 StringBuffer stringBuffer = new StringBuffer(); 10 stringBuffer.append("SELECT itemName"); 11 stringBuffer.append(" ,itemStatus1"); 12 stringBuffer.append(" ,itemStatus2"); 13 stringBuffer.append(" ,FROM MY_TEST_TABLE"); 14 stringBuffer.append(" WHERE itemName = "); 15 stringBuffer.append(search); 16 String sql = stringBuffer.toString(); 17 logger.sqllog(sql); 18 MyTestEntity record = null; 19 ArrayList<MyTestEntity> ret = new ArrayList<MyTestEntity>(); 20 try{ 21 stmt = getConn().createStatement(); 22 result = stmt.executeQuery(sql); 23 while(result.next()) { 24 record = new MyTestEntity(); 25 record.setItemName(result.getString("itemName")); 26 record.setItemStatus1(result.getString("itemStatus1")); 27 record.setItemStatus2(result.getString("itemStatus2")); 28 ret.add(record); 29 } 30 } 31 return ret; 32}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。