⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userformcontroller.java

📁 springlive ch6
💻 JAVA
字号:
package org.appfuse.web;

import java.text.NumberFormat;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.model.User;
import org.appfuse.service.UserManager;
import org.springframework.beans.propertyeditors.CustomNumberEditor;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;


public class UserFormController extends SimpleFormController {
    private static Log log = LogFactory.getLog(UserFormController.class);
    private UserManager mgr = null;
    private MailSender mailSender;
    private SimpleMailMessage message;

    public void setUserManager(UserManager userManager) {
        this.mgr = userManager;
    }

    public UserManager getUserManager() {
        return this.mgr;
    }

    public void setMailSender(MailSender mailSender) {
        this.mailSender = mailSender;
    }
    
    public void setMessage(SimpleMailMessage message) {
        this.message = message;
    }

    /**
     * Set up a custom property editor for converting Longs
     */
    protected void initBinder(HttpServletRequest request,
                              ServletRequestDataBinder binder) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        binder.registerCustomEditor(Long.class, null,
               new CustomNumberEditor(Long.class, nf, true));
    }
    
    public ModelAndView onSubmit(HttpServletRequest request,
                                 HttpServletResponse response, Object command,
                                 BindException errors)
    throws Exception {
        if (log.isDebugEnabled()) {
            log.debug("entering 'onSubmit' method...");
        }

        User user = (User) command;
        
        if (request.getParameter("delete") != null) {
            mgr.removeUser(user.getId().toString());
            request.getSession().setAttribute("message", 
                    getMessageSourceAccessor().getMessage("user.deleted", 
                    new Object[] {user.getFirstName() + ' ' + user.getLastName()}));
                                              
        } else {
            mgr.saveUser(user);
            request.getSession().setAttribute("message", 
                    getMessageSourceAccessor().getMessage("user.saved", 
                    new Object[] {user.getFirstName() + ' ' + user.getLastName()}));
        }

        return new ModelAndView(new RedirectView(getSuccessView()));
    }

    protected Object formBackingObject(HttpServletRequest request)
    throws ServletException {
        String userId = request.getParameter("id");

        if ((userId != null) && !userId.equals("")) {
            User user = mgr.getUser(request.getParameter("id")); 
            if (user == null) {
            	return new User();
            }
            return user;
        } else {
            return new User();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -