roaddefectformcontroller.java
来自「Java的框架」· Java 代码 · 共 274 行
JAVA
274 行
package mcaps.apps.prrm.roaddefect.webapp.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mcaps.apps.prrm.roaddefect.model.Contact;
import mcaps.apps.prrm.roaddefect.model.Road;
import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.model.RoadDefectSeverity;
import mcaps.apps.prrm.roaddefect.model.RoadDefectStatus;
import mcaps.apps.prrm.roaddefect.model.RoadDefectType;
import mcaps.apps.prrm.roaddefect.service.RoadDefectManager;
import mcaps.apps.prrm.roaddefect.service.RoadManager;
import mcaps.apps.prrm.task.model.Task;
import mcaps.apps.prrm.task.service.TaskManager;
import mcap.core.base.webapp.controller.BaseFormController;
import mcap.core.logging.Log;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.validation.BindException;
import org.springframework.web.bind.RequestUtils;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
/**
* Implementation of BaseFormController that interacts with the
* RoadDefectManager to handle request to retrieve/persist road defect
* info to data store.
*
* @author jov
* @date 05-Sep-2005
* @version 1.0.1.0
*/
public class RoadDefectFormController extends BaseFormController {
private final static String className="mcaps.apps.prrm.roaddefect.webapp.controller.RoadDefectFormController";
private static final String EDIT_URL = "roadDefectForm.action?method=edit&roadDefectId=";
private static final String VIEW_URL ="roadDefect.action?roadDefectId=";
private RoadDefectManager roadDefectManager;
private TaskManager taskManager;
private RoadManager roadManager;
/**
* Returns the roadDefectManager.
* @return RoadDefectManager
*/
public RoadDefectManager getRoadDefectManager () {
return roadDefectManager;
}
/**
* Sets the roadDefectManager.
* @param roadDefectManager The roadDefectManager to set.
*/
public void setRoadDefectManager (RoadDefectManager roadDefectManager) {
this.roadDefectManager = roadDefectManager;
}
/**
* Returns the taskManager.
* @return TaskManager
*/
public TaskManager getTaskManager () {
return taskManager;
}
/**
* Sets the taskManager.
* @param taskManager The taskManager to set.
*/
public void setTaskManager (TaskManager taskManager) {
this.taskManager = taskManager;
}
//===========================================================================================================
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.AbstractFormController#processFormSubmission(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
* Checks for an action that should be executed without respect to binding errors, like a cancel action.
*/
public ModelAndView processFormSubmission (HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
if (request.getParameter ("cancel") != null) {
return new ModelAndView (getCancelView ());
}
/* RoadDefect roadDefect = (RoadDefect) command;
Log.info(className + " processFormSubmission roadid=" + request.getParameter("road_id"));
Integer roadid= new Integer (request.getParameter("road_id"));
Road road=roadManager.getRoad(roadid);
roadDefect.setRoad(road);
Log.info(className+ " roadid=" + request.getParameter("coordinates"));
*/
return super.processFormSubmission (request, response, command, errors);
}
protected void onBind(HttpServletRequest request, Object command, BindException errors) throws Exception {
// TODO Auto-generated method stub
RoadDefect roadDefect=(RoadDefect)command;
String roadId = request.getParameter("road_id");
if (roadId != null && roadId.length() > 0){
Road road=roadManager.getRoad(new Integer (roadId));
Log.info(className + " onSubmit() getRoad()" + road.getId());
roadDefect.setRoad(road);
}
super.onBind(request, command, errors);
}
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
* Next to be called if processFormSubmission method called the
* super.processFormSubmission
*/
public ModelAndView onSubmit (HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
Locale locale = request.getLocale();
RoadDefect roadDefect = (RoadDefect) command;
if (request.getParameter ("delete") != null) {
this.getRoadDefectManager().removeRoadDefect(roadDefect);
saveMessage (request, getText ("roadDefect.deleted", roadDefect.getId().toString(),
locale));
return new ModelAndView (getSuccessView ());
}
else {
Log.info(className + " onSubmit() Before saveRoadDefect()");
this.getRoadDefectManager().saveRoadDefect(roadDefect);
Log.info(className + " onSubmit() after saveRoadDefect()");
saveMessage (request, getText ("roadDefect.saved", roadDefect.getId().toString(),
locale));
return new ModelAndView (new RedirectView (VIEW_URL + roadDefect.getId()));
}
}
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.AbstractFormController#showForm(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.springframework.validation.BindException)
* Calling in case of validation errors, to show the form view again.
*/
protected ModelAndView showForm (HttpServletRequest request,
HttpServletResponse response, BindException errors) throws Exception {
// prevent ordinary users from calling a GET on roadDefectForm.html
// unless a bind error exists.
if ((request.getRequestURI ().indexOf ("roadDefectForm") > -1)
&& (!request.isUserInRole (mcap.core.user.util.NameConstants.ADMIN_ROLE)
&& (errors.getErrorCount () == 0) &&
(request.getRemoteUser () != null))) {
response.sendError (HttpServletResponse.SC_FORBIDDEN);
return null;
}
return super.showForm (request, response, errors);
}
/*
protected void onBind(HttpServletRequest request, Object command, BindException arg2) throws Exception {
RoadDefect roadDefect = (RoadDefect) command;
Log.info(className + " processFormSubmission roadid=" + request.getParameter("road_id"));
Integer roadid= new Integer (request.getParameter("road_id"));
Road road=roadManager.getRoad(roadid);
roadDefect.setRoad(road);
Log.info(className+ " roadid=" + request.getParameter("coordinates"));
// TODO Auto-generated method stub
super.onBind(request, command, arg2);
}*/
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.AbstractFormController#formBackingObject(javax.servlet.http.HttpServletRequest)
* Retrieve a backing object for the current form from the given request.
*/
protected Object formBackingObject (HttpServletRequest request)
throws Exception {
RoadDefect roadDefect = null;
if (StringUtils.equals (request.getParameter ("method"), "add")) {
roadDefect = new RoadDefect();
roadDefect.setContact(new Contact());
roadDefect.setRoad(new Road());
}else{
roadDefect = roadDefectManager.getRoadDefect(RequestUtils.getIntParameter(request, "roadDefectId"));
Task task = new Task();
task.setRoadDefectId(roadDefect.getId());
request.setAttribute(mcaps.apps.prrm.task.util.NameConstants.TASK_LIST,taskManager.getTasks(task));
// Road road = roadManager.getRoad(roadDefect.getRoadName());
// request.setAttribute(NameConstants.ROAD_BBOX,road.getBbox());
}
return roadDefect;
}
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.BaseCommandController#initBinder(javax.servlet.http.HttpServletRequest, org.springframework.web.bind.ServletRequestDataBinder)
* Set up a custom property editor for converting form inputs to real objects
*/
protected void initBinder (HttpServletRequest request,
ServletRequestDataBinder binder) {
// super.initBinder(request,binder);
// binder.registerCustomEditor (RoadDefectType.class,
// new RoadDefectTypeSupport ());
// binder.registerCustomEditor (RoadDefectSeverity.class,
// new RoadDefectSeveritySupport ());
// binder.registerCustomEditor (RoadDefectStatus.class,
// new RoadDefectStatusSupport ());
SimpleDateFormat dateFormat = new SimpleDateFormat (getText ("date.format",
request.getLocale ()));
dateFormat.setLenient (false);
binder.registerCustomEditor (Date.class, null, new CustomDateEditor (
dateFormat, true));
}
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.SimpleFormController#referenceData(javax.servlet.http.HttpServletRequest)
* Create a reference data map for the given request and command, consisting of bean name/bean instance pairs as expected by ModelAndView
*/
protected Map referenceData(HttpServletRequest request) throws Exception {
Map refMap = new HashMap();
refMap.put("roaddefecttypelist", RoadDefectType.list);
refMap.put("roaddefectseveritylist", RoadDefectSeverity.list);
refMap.put("roaddefectstatuslist", RoadDefectStatus.list);
return refMap;
}
public RoadManager getRoadManager() {
return roadManager;
}
public void setRoadManager(RoadManager roadManager) {
this.roadManager = roadManager;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?