Hi
I've posted this on a couple off different sites
http://www.nabble.com/Dropdown-box-i...7820c2369.html
and
http://forum.hibernate.org/viewtopic.php?t=956534
the biggest problem that I'm having is this all new and I don't have too much experience..........as you can see I've tried different approaches, but still unable to get it to work...could you give me some pointers on how to work with PropertyEditors
here what I have....how wold I tie this into WorkOrderFormController
package com.kink.webapp.propertyeditor;
import java.beans.PropertyEditorSupport;
import com.kink.model.Department;
import com.kink.service.Manager;
/**
* This class knows how to get a project instance from a project id and vice-versa.
*
* <p>$Date$</p>
* @author $Author$
* @version $Revision$
*/
public class DepartmentPropertyEditor extends PropertyEditorSupport {
private Manager manager;
public DepartmentPropertyEditor(Manager manager) {
this.manager = manager;
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyEditorSupport#getAsText()
*/
public String getAsText() {
Department p = (Department) getValue();
if (p != null)
return String.valueOf(p.getId());
else
return null;
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyEditorSupport#setAsText(java.la ng.String)
*/
public void setAsText(String departmentId) throws IllegalArgumentException {
Long id = Long.valueOf(departmentId);
Department d = (Department) manager.getObject(Department.class, id);
setValue(d);
}
}
/* ************************************************** **************
* $Log$
* ************************************************** *************/
package com.kink.webapp.action;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import org.apache.commons.lang.StringUtils;
import com.kink.model.Workorder;
import com.kink.model.Department;
import com.kink.service.WorkorderManager;
import com.kink.service.DepartmentManager;
import org.springframework.beans.PropertyValue;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
public class WorkorderFormController extends BaseFormController {
private WorkorderManager workorderManager = null;
private DepartmentManager departmentManager = null;
public void setWorkorderManager(WorkorderManager workorderManager) {
this.workorderManager = workorderManager;
}
protected Map referenceData(HttpServletRequest request)
throws ServletException {
Map model = new HashMap();
model.put("departments", departmentManager.getDepartments(new Department()));
return model;
}
public void setDepartmentManager(DepartmentManager departmentManager){
this.departmentManager = departmentManager;
}
public DepartmentManager getDepartmentManager(){
return this.departmentManager;
}
protected Object formBackingObject(HttpServletRequest request)
throws Exception {
String id = request.getParameter("id");
Workorder workorder = null;
if (!StringUtils.isEmpty(id)) {
workorder = workorderManager.getWorkorder(id);
} else {
workorder = new Workorder();
}
return workorder;
}
public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command,
BindException errors)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'onSubmit' method...");
}
Workorder workorder = (Workorder) command;
boolean isNew = (workorder.getId() == null);
Locale locale = request.getLocale();
if (request.getParameter("delete") != null) {
workorderManager.removeWorkorder(workorder.getId() .toString());
saveMessage(request, getText("workorder.deleted", locale));
} else {
//PropertyValue v = new PropertyValue("department", departmentManager.setDepartmentDAO());
workorderManager.saveWorkorder(workorder);
String key = (isNew) ? "workorder.added" : "workorder.updated";
saveMessage(request, getText(key, locale));
if (!isNew) {
return new ModelAndView("redirect:editWorkorder.html", "id", workorder.getId());
}
}
return new ModelAndView(getSuccessView());
}
}