/**
* ModifyOrderController.java
* 2008-12-14
* Administrator
*/
package com.conant.order.web.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.ModelAndViewDefiningException;
import org.springframework.web.servlet.mvc.SimpleFormController;
import com.conant.order.common.PageMsg;
import com.conant.order.dao.OrderDao;
import com.conant.order.util.Logger;
import com.conant.order.util.ProcessException;
import com.conant.order.vo.OrsOrder;
/**
* @author Administrator
*/
public abstract class ModifyOrderController extends SimpleFormController
{
private static final Logger log = Logger.getLogger("ModifyOrderController",
Logger.DEBUG, true);
private OrderDao orderDao;
public ModifyOrderController()
{
// Initialize controller properties here or
// in the Web Application Context
}
public OrderDao getOrderDao()
{
return orderDao;
}
public void setOrderDao(OrderDao orderDao)
{
this.orderDao = orderDao;
}
public abstract Object formSubmissionBackingObject(
HttpServletRequest request) throws ModelAndViewDefiningException;
protected Object formBackingObject(HttpServletRequest request)
throws ModelAndViewDefiningException
{
if(isFormSubmission(request))
{
return formSubmissionBackingObject(request);
}
String orderId = request.getParameter("orderId");
try
{
OrsOrder order = getOrderDao().getOrder(Integer.parseInt(orderId));
return order;
}
catch(ProcessException pe)
{
PageMsg pageMsg = new PageMsg();
pageMsg.setTarget("_self");
pageMsg.setMsg(pe.getErrorReason());
pageMsg.setUrl("/queryOrders.ord");
throw new ModelAndViewDefiningException(new ModelAndView(
"common/err", "error", pageMsg));
}
}
// Use onSubmit instead of doSubmitAction
// when you need access to the Request, Response, or BindException objects
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception
{
log.info("ModifyOrderController onSubmit...");
OrsOrder order = (OrsOrder)command;
PageMsg pageMsg = new PageMsg();
pageMsg.setTarget("_self");
pageMsg.setUrl("/queryOrders.ord");
try
{
getOrderDao().saveOrder(order);
pageMsg.setMsg("Update order successfully!");
return new ModelAndView(this.getSuccessView(), "success", pageMsg);
}
catch(ProcessException pe)
{
pageMsg.setMsg(pe.getErrorReason());
return new ModelAndView("common/err", "error", pageMsg);
}
catch(Exception ex)
{
pageMsg.setMsg(ex.getMessage());
return new ModelAndView("common/err", "error", pageMsg);
}
}
}