preferenceformcontroller.java
来自「Java的框架」· Java 代码 · 共 172 行
JAVA
172 行
package mcaps.core.preference.webapp.controller;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mcap.core.base.webapp.controller.BaseFormController;
import mcap.core.preference.model.Preference;
import mcap.core.preference.service.PreferenceExistsException;
import mcap.core.preference.service.PreferenceManager;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
/**
* Implementation of BaseFormController that interacts with the
* PreferenceManager to handle request to retrieve/persist preference info to
* data store.
*
* @author Tan Beng Suang
* @date 31-Aug-2005
* @version 1.0.1.0
*/
public class PreferenceFormController extends BaseFormController {
private PreferenceManager preferenceManager;
/**
* Returns the preferenceManager.
* @return PreferenceManager
*/
public PreferenceManager getPreferenceManager () {
return preferenceManager;
}
/**
* Sets the preferenceManager.
* @param preferenceManager The preferenceManager to set.
*/
public void setPreferenceManager (PreferenceManager preferenceManager) {
this.preferenceManager = preferenceManager;
}
//----------------------------------------------------------------------
// ----------------------------------------------------------------------
/**
* First to be called.
*/
public ModelAndView processFormSubmission (HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
// if the request is "Cancel"
if (request.getParameter ("cancel") != null) {
if (!StringUtils.equals (request.getParameter ("from"), "list")) {
return new ModelAndView (getCancelView ());
}
else {
return new ModelAndView (getSuccessView ());
}
}
return super.processFormSubmission (request, response, command, errors);
}
/**
* Next to be called if processFormSubmission method called the
* super.processFormSubmission
*/
public ModelAndView onSubmit (HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
Preference pref = (Preference) command;
Locale locale = request.getLocale ();
if (request.getParameter ("delete") != null) {
//request to delete role.
this.getPreferenceManager().removePreference(pref.getId());
saveMessage (request, getText ("preference.deleted", pref.getKey(),
locale));
return new ModelAndView (getSuccessView ());
}
else {
//try saving the role information.
try {
this.getPreferenceManager().savePreference(pref);
}
catch (PreferenceExistsException e) {
errors.rejectValue ("key", "errors.existing.preference", new Object[] {
pref.getKey ()}, "duplicate preference");
if (StringUtils.equals (request.getParameter ("method"), "Add"))
pref.setVersion(null);
return showForm (request, response, errors);
}
if (StringUtils.equals (request.getParameter ("method"), "Add")) {
saveMessage (request, getText ("preference.saved", pref.getKey (),
locale));
// return to main Menu
return new ModelAndView (new RedirectView ("listPreferences.action")); }
else {
saveMessage (request, getText ("preference.updated", pref.getKey (), locale));
return new ModelAndView (new RedirectView ("listPreferences.action"));
}
}
}
/**
* 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 editUser.html
// unless a bind error exists.
if ((request.getRequestURI ().indexOf ("editPreference") > -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);
}
/**
* Retrieve a backing object for the current form from the given request.
*/
protected Object formBackingObject (HttpServletRequest request)
throws Exception {
String id = request.getParameter ("id");
Preference pref = null;
if (!StringUtils.isBlank (id)
&& !"".equals (request.getParameter ("version"))) {
pref = this.getPreferenceManager().getPreference (id);
}
else {
pref = new Preference ();
}
return pref;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?