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