削除処理
変更と同じように一覧でItemnのcodeをhiddenで渡してActionを呼び出します。
<s:if test="#session['user'].delete_priv == true"> <td> <s:form action="Delete_select"> <s:hidden name="code"/> <s:submit key="button.delete"/> </s:form> </td> </s:if>
削除のJSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title><s:text name="title.delete"/></title> </head> <body> <table> <tr> <td><s:text name="label.ganre"></s:text></td> <td><s:property value="item.ganreCodeName"></s:property></td> </tr> <tr> <td><s:text name="label.media"></s:text></td> <td><s:property value="item.mediaCodeName"></s:property></td> </tr> <tr> <td><s:text name="label.topChar"></s:text></td> <td><s:property value="item.topChar"></s:property></td> </tr> <tr> <td><s:text name="label.artist"></s:text></td> <td><s:property value="item.artist"></s:property></td> </tr> <tr> <td><s:text name="label.title"></s:text></td> <td><s:property value="item.title"></s:property></td> </tr> <tr> <td><s:text name="label.year"></s:text></td> <td><s:property value="item.year"></s:property></td> </tr> <tr> <td><s:text name="label.place"></s:text></td> <td><s:property value="item.placeCodeName"></s:property></td> </tr> <tr> <td><s:text name="label.owner"></s:text></td> <td><s:property value="item.ownerCodeName"></s:property></td> </tr> <tr> <td> <s:form action="Delete_execute"> <s:hidden name="item.code"/> <s:submit key="button.delete"></s:submit> </s:form> </td> <td> <% int pageNumber = (Integer)session.getAttribute("currentPage"); out.print("<form action=\"MovePage.action?page=" + pageNumber + "\"" + "method=\"post\"" + ">"); out.print("<input type=\"submit\" value=\"戻る\"/>"); out.print("</form>"); %> </td> </tr> </table> </body> </html>
削除のActionではcodeに該当するItemをDBから削除し、再度SubListを抜き出して、一覧表示JSPに遷移します。
@Action( value = "/Delete_execute", results = { @Result(name = "execute", location = "/WEB-INF/form/retrieveResultForm.jsp" ) } ) public String execute() throws Exception { int deletedNumber = iService.deleteItem(item.getCode()); HttpServletRequest request = ServletActionContext.getRequest(); rdManager.deleteItemInList(request, item); return "execute"; }
deleteItemメソッド
@Override public void deleteItemInList(HttpServletRequest request, Item item) { HttpSession session = request.getSession(); List<Item> subList = (List<Item>) session.getAttribute("items"); int i = 0; for(Item delItem: subList) { if(delItem.getCode() == item.getCode()) { subList.remove(i); break; } i++; } int currentPage = (Integer)request.getSession().getAttribute("currentPage"); getRetrieveSubList(request, currentPage); }