You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by RickFlair <ho...@nextent.hu> on 2006/10/24 12:08:41 UTC
Struts - checkboxes in a table
Hi!
I have a table in a JSP page and it has got a column which contains
checkboxes. I'd like to delete those rows, where the checkbox is selected.
As I know, I must create an ActionForm for the table, which contains a
Collection object. But when I want to retrieve the collection before the
delete operation,
NxtModulsListForm myForm = (NxtModulsListForm)form;
Collection listNxtModuls = myForm.getListNxtModuls();
the listNxtModuls object is null...
How can I do this? Thank You very much!
Here is my code:
*****************************DeleteNxtModulsAction.java*********************
package actions;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import dao.beans.NxtModulsBean;
import utils.OwnException;
import forms.NxtModulsListForm;
public class DeleteNxtModulsAction extends CommonAction {
public DeleteNxtModulsAction() {
// TODO Auto-generated constructor stub
}
@Override
public ActionForward commonExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
NxtModulsListForm myForm = (NxtModulsListForm)form;
Collection listNxtModuls = myForm.getListNxtModuls();
try {
for(Iterator Ite=listNxtModuls.iterator(); Ite.hasNext();) {
NxtModulsBean OneRecord = (NxtModulsBean)Ite.next();
if (OneRecord.getSelected().booleanValue()) {
myManager.deleteRecord(OneRecord.getModul_id());
}
}
}
catch(OwnException e) {
System.out.println(e);
myErrors.add("label",new ActionError("error.delete_record_failed"));
saveErrors(request, myErrors);
return mapping.findForward("error");
}
return mapping.findForward("list");
}
}
**********************ProcessListNxtModulsAction.java**********************
package actions;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import forms.NxtModulsListForm;
public class ProcessListNxtModulsAction extends CommonAction {
public ProcessListNxtModulsAction() {
// TODO Auto-generated constructor stub
}
@Override
public ActionForward commonExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward(request.getParameter("action"));
}
}
**************************NxtModulsListForm.java****************************
package forms;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class NxtModulsListForm extends ActionForm {
private Collection listNxtModuls;
private String sortByField;
// ********************** getters **********************
public Collection getListNxtModuls() {
return listNxtModuls;
}
public String getSortByField() {
return sortByField;
}
// ********************** setters **********************
public void setListNxtModuls(Collection listNxtModuls) {
this.listNxtModuls = listNxtModuls;
}
public void setSortByField(String sortByField) {
this.sortByField = sortByField;
}
@Override
public void reset(ActionMapping arg0, HttpServletRequest arg1) {
listNxtModuls = null;
sortByField = null;
}
}
**************************ListNxtModulsAction.java***************************
package actions;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import dao.beans.NxtModulsBean;
import utils.OwnComparator;
import utils.OwnException;
import forms.NxtModulsListForm;
public class ListNxtModulsAction extends CommonAction {
boolean sortAscending = true;
String FieldName;
@Override
public ActionForward commonExecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
NxtModulsListForm myForm = (NxtModulsListForm)form;
Collection listNxtModuls = null;
try {
listNxtModuls = myManager.getAll();
}
catch (OwnException e) {
System.out.println(e);
myErrors.add("label",new ActionError("error.listfailed"));
saveErrors(request, myErrors);
return mapping.findForward("error");
}
//mySession.setAttribute("list_nxt_moduls", listNxtModuls); // ez akkor
kell, ha a list mögött nincs egy form
myForm.setListNxtModuls(doSort(listNxtModuls,request.getParameter("sort_field")));
return mapping.findForward("list");
}
protected Collection doSort(Collection listNxtModuls, String _FieldName) {
if (_FieldName != null) {
if (FieldName != null && FieldName.equals(_FieldName)) {
sortAscending = !sortAscending;
}
else {
FieldName = _FieldName;
sortAscending = true;
}
Collections.sort((List<NxtModulsBean>) listNxtModuls,new
OwnComparator(FieldName,sortAscending));
}
return listNxtModuls;
}
}
******************************struts-config.xml***************************
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="NxtModulsForm" type="forms.NxtModulsForm" />
<form-bean name="NxtModulsListForm"
type="forms.NxtModulsListForm" />
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="error" path="/error.jsp" />
</global-forwards>
<action-mappings>
<action input="/index.jsp" name="NxtModulsListForm"
path="/listNxtModuls" scope="request"
type="actions.ListNxtModulsAction" validate="false">
<forward name="list" path="/NxtModuls/list.jsp" />
</action>
<action input="/NxtModuls/list.jsp" name="NxtModulsForm"
path="/editNxtModuls" type="actions.EditNxtModulsAction">
<forward name="edit" path="/NxtModuls/edit.jsp" />
</action>
<action input="/NxtModuls/edit.jsp" name="NxtModulsForm"
path="/saveNxtModuls" type="actions.SaveNxtModulsAction">
<forward name="list" path="/listNxtModuls.do" />
</action>
<action input="/NxtModuls/edit.jsp" name="NxtModulsForm"
path="/processNxtModuls" type="actions.ProcessNxtModulsAction">
<forward name="save" path="/saveNxtModuls.do" />
<forward name="cancel" path="/cancelNxtModuls.do" />
</action>
<action input="/NxtModuls/edit.jsp" path="/cancelNxtModuls"
type="actions.CancelNxtModulsAction">
<forward name="list" path="/listNxtModuls.do" />
</action>
<action input="/NxtModuls/list.jsp" name="NxtModulsListForm"
path="/deleteNxtModuls" type="actions.DeleteNxtModulsAction">
<forward name="list" path="/listNxtModuls.do" />
</action>
<action input="/NxtModuls/list.jsp" name="NxtModulsListForm"
path="/processListNxtModuls" scope="request"
type="actions.ProcessListNxtModulsAction" validate="false">
<forward name="create" path="/NxtModuls/edit.jsp" />
<forward name="delete" path="/deleteNxtModuls.do" />
</action>
</action-mappings>
<controller />
<message-resources parameter="resources.application" />
</struts-config>
--
View this message in context: http://www.nabble.com/Struts---checkboxes-in-a-table-tf2500343.html#a6970160
Sent from the Struts - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org