schedulemultiactioncontroller.java
来自「Java的框架」· Java 代码 · 共 514 行 · 第 1/2 页
JAVA
514 行
package mcaps.core.scheduling.webapp.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContextException;
import org.springframework.web.bind.RequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
import mcap.core.base.webapp.controller.BaseMultiActionController;
import mcap.core.logging.Log;
import mcap.core.scheduling.model.Job;
import mcap.core.scheduling.model.Schedule;
import mcap.core.scheduling.service.ScheduleException;
import mcap.core.scheduling.service.ScheduleManager;
import mcap.core.scheduling.util.NameConstants;
/**
* Implementation of BaseMultiActionController that handle multiple
* request pertaining to job and schedule.
*
* @author jov
* @date Mar 6, 2006
* @version 1.0.1.0
*/
public class ScheduleMultiActionController extends BaseMultiActionController implements InitializingBean {
private ScheduleManager scheduleManager;
/**
* Returns the scheduleManager.
* @return ScheduleManager
*/
public ScheduleManager getScheduleManager() {
return scheduleManager;
}
/**
* Sets the scheduleManager.
* @param scheduleManager The scheduleManager to set.
*/
public void setScheduleManager(ScheduleManager scheduleManager) {
this.scheduleManager = scheduleManager;
}
//===========================================================================================================
// INITIALIZING BEAN IMPLEMENTATION
//===========================================================================================================
/* (non-Javadoc)
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
* Invoked by a BeanFactory after it has set all bean properties supplied. This allows
* the bean instance to perform initialization only possible when all bean properties
* have been set and to throw an exception in the event of misconfiguration.
*/
public void afterPropertiesSet() throws Exception {
if (scheduleManager == null){
Log.warn("Must set scheduleManager bean property on " + getClass());
throw new ApplicationContextException(
"Must set scheduleManager bean property on " + getClass());
}
}
//===========================================================================================================
// HANDLERS
//===========================================================================================================
/**
* Custom handler for displaying of list of jobs available
* for scheduling.
*
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView jobsHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
try {
return new ModelAndView(NameConstants.JOBS_VIEW,
NameConstants.JOB_LIST, scheduleManager.getAllJobs());
} catch (ScheduleException e) {
Log.warn("Fail to list jobs. " + e.getMessage());
return getErrorView(NameConstants.LIST_JOBS_TITLE,
NameConstants.LIST_JOBS_HEADING,
NameConstants.ERROR_LIST_JOBS_FAIL, "");
}
}
/**
* Custom handler for read-only display of the detail of a job.
*
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView jobHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
Locale locale = request.getLocale();
if (request.getParameter("jobName") == null) {
saveError(request, getText(NameConstants.ERROR_VIEW_JOB_NULL_JOBNAME,locale));
}
if (request.getParameter("groupName") == null) {
saveError(request, getText(NameConstants.ERROR_VIEW_JOB_NULL_GROUPNAME,locale));
}
Job job = null;
String jobName = RequestUtils.getStringParameter(request, "jobName");
String groupName = RequestUtils.getStringParameter(request, "groupName");
try {
job = scheduleManager.getJob(jobName, groupName);
if (job == null) {
saveError(request, getText(NameConstants.ERROR_VIEW_JOB_NULL,
new Object[]{jobName,groupName},locale));
}else{
List scheduleList = new ArrayList();
scheduleList = scheduleManager.getSchedulesFromJob(jobName,groupName);
request.setAttribute(NameConstants.SCHEDULE_LIST, scheduleList);
return new ModelAndView(NameConstants.JOB_VIEW, NameConstants.JOB_OBJ, job);
}
return new ModelAndView(NameConstants.JOBS_VIEW,
NameConstants.JOB_LIST, scheduleManager.getAllJobs());
} catch (ScheduleException e) {
Log.warn("Fail to view job. " + e.getMessage());
return getErrorView(NameConstants.VIEW_JOB_TITLE, NameConstants.VIEW_JOB_HEADING,
NameConstants.ERROR_VIEW_JOB_FAIL,NameConstants.JOBS_VIEW_URL);
}
}
/**
* Custom handler for job deletion
*
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView deleteJobHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
Locale locale = request.getLocale();
if (request.getParameter("jobName") == null) {
saveError(request, getText(NameConstants.ERROR_DELETE_JOB_NULL_JOBNAME,locale));
}
if (request.getParameter("groupName") == null) {
saveError(request, getText(NameConstants.ERROR_DELETE_JOB_NULL_GROUPNAME,locale));
}
String jobName = RequestUtils.getStringParameter(request, "jobName");
String groupName = RequestUtils.getStringParameter(request, "groupName");
try {
Job job = scheduleManager.getJob(jobName, groupName);
if (job == null){
saveError(request, getText(NameConstants.ERROR_DELETE_JOB_NULL,
new Object[]{jobName,groupName},locale));
}else{
if (scheduleManager.removeJob(jobName, groupName)) {
saveMessage(request, getText(NameConstants.SUCC_JOB_DELETE,
new Object[] {jobName, groupName }, locale));
} else {
saveMessage(request, getText(NameConstants.ERROR_DELETE_JOB_FAIL,
new Object[] { jobName, groupName }, locale));
}
}
return new ModelAndView (new RedirectView(NameConstants.JOBS_VIEW_URL));
} catch (ScheduleException e) {
Log.warn("Fail to delete job. " + e.getMessage());
return getErrorView(NameConstants.DELETE_JOB_TITLE, NameConstants.DELETE_JOB_HEADING,
NameConstants.ERROR_DELETE_JOB_FAIL,new Object[]{jobName,groupName},NameConstants.JOBS_VIEW_URL);
}
}
/**
* Custom handler for job execution
*
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView executeJobHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
Locale locale = request.getLocale();
if (request.getParameter("jobName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_JOB_NULL_JOBNAME,locale));
}
if (request.getParameter("groupName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_JOB_NULL_GROUPNAME,locale));
}
String jobName = RequestUtils.getStringParameter(request, "jobName");
String groupName = RequestUtils.getStringParameter(request, "groupName");
try {
Job job = scheduleManager.getJob(jobName, groupName);
if (job == null){
saveError(request, getText(NameConstants.ERROR_EXECUTE_JOB_NULL,
new Object[]{jobName,groupName},locale));
}else{
if (scheduleManager.executeJob(jobName, groupName)) {
saveMessage(request, getText(NameConstants.SUCC_JOB_EXECUTE,
new Object[] { jobName, groupName }, locale));
} else {
saveMessage(request, getText(NameConstants.ERROR_EXECUTE_JOB_FAIL,
new Object[] { jobName, groupName }, locale));
}
}
return getRedirectView(request,jobName, groupName);
// String from = RequestUtils.getStringParameter(request, "from");
// if (from.equalsIgnoreCase("joblist")){
// return new ModelAndView(NameConstants.JOBS_VIEW,
// NameConstants.JOB_LIST, scheduleManager.getAllJobs());
// }else{
// return new ModelAndView(NameConstants.SCHEDULES_VIEW,
// NameConstants.SCHEDULE_LIST, scheduleManager.getAllSchedules());
// }
} catch (ScheduleException e) {
Log.warn("Fail to execute job. " + e.getMessage());
return getErrorView(NameConstants.EXECUTE_JOB_TITLE,
NameConstants.EXECUTE_JOB_HEADING,
NameConstants.ERROR_EXECUTE_JOB_FAIL,
new Object[] { jobName, groupName },
NameConstants.JOBS_VIEW_URL);
}
}
/**
* Custom handler for job execution
*
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView executeScheduleHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
Locale locale = request.getLocale();
if (request.getParameter("jobName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_SCHEDULE_NULL_JOBNAME,locale));
}
if (request.getParameter("jobGroupName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_SCHEDULE_NULL_JOBGROUPNAME,locale));
}
if (request.getParameter("scheduleName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_SCHEDULE_NULL_SCHEDULENAME,locale));
}
if (request.getParameter("groupName") == null) {
saveError(request, getText(NameConstants.ERROR_EXECUTE_SCHEDULE_NULL_GROUPNAME,locale));
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?