一覧、削除のアクションクラス
更新・追加のアクションと一覧系ではアクションを分けた。その一覧側のアクション
※Pagerクラスは殆ど何もしないUtilityクラス
tutorial.UserListAction.java
package tutorial; import java.util.LinkedList; import java.util.List; import java.util.Map; import jp.co.hershe.struts2.util.ParamUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ParameterAware; import com.opensymphony.xwork2.ActionSupport; /** * Struts2 アクションクラス * * @author mikuni * */ public class UserListAction extends ActionSupport implements ParameterAware { private static final long serialVersionUID = -8672168139910932035L; static Log log = LogFactory.getLog(UserListAction.class); ParamUtil u; UserDAO dao; List<User> list = null; Pager pager = null; // Inject by spring public UserListAction(UserDAO dao) { this.dao = dao; } // ParameterAware public void setParameters(Map p) { u = new ParamUtil(p); } public String doList() { int page = u.getInt("page", 0); pager = new Pager( page, dao.userCount(), 5 ); list = dao.list(pager); return SUCCESS; } public String doDelPrev() { String [] ids = u.gets(":del"); list = new LinkedList<User>(); for ( String a : ids ) { list.add( dao.get(a)); } return SUCCESS; } public String doDelDo() { String [] ids = u.gets(":del"); list = new LinkedList<User>(); for ( String a : ids ) { dao.delete(a); } return SUCCESS; } // Stack public List<User> getUsers() { return list; } public void setUsers( List<User> list ) { this.list = list; } public void setPager( Pager page ) { this.pager = page; } public Pager getPager() { return pager; } }
<action name="user_list" class="UserListAction" method="doList"> <result>/list.jsp</result> </action> <action name="user_delprev" class="UserListAction" method="doDelPrev"> <result>/dellist.jsp</result> </action> <action name="user_deldo" class="UserListAction" method="doDelDo"> <result type="redirect-action">user_list</result> </action>