j2ee spring mvc适用于小型应用的最佳实践

时间:2015-12-27 03:38:45

标签: java spring spring-mvc

我正在使用spring-hibernate的小应用程序,但我是Spring MVC领域的新手,我有一些问题:

1)对于多页使用单个控制器是一种很好的做法,或者我应该创建单独的cont。每页的课程。

2)我不想使用弹簧的表格标签我使用html表格。

我的控制器如下:

package com.servlets.controllers;

import com.utils.generalUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class signin{

    @RequestMapping(value = "/login", method={RequestMethod.POST,RequestMethod.GET})  
    public ModelAndView loginForm(HttpServletRequest req,HttpServletResponse response){  
        HashMap<String,String> lsMsg = new HashMap<String,String>();

            lsMsg = generalUtils.getInstance().LoginCheck(req);
            for (Map.Entry<String, String> entry : lsMsg.entrySet()) {
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println("  key -- "+key+"  value -- "+value);
            }
            if((lsMsg.get("Authorized")).equals("true")){
                return new ModelAndView("landing", "message", lsMsg);
            }
            return new ModelAndView("login", "message", lsMsg);
    }

    @RequestMapping(value = "/fergot", method={RequestMethod.POST,RequestMethod.GET})  
    public ModelAndView fergotForm(HttpServletRequest req) {  // Not implemented yet
            HashMap<String,String> lsMsg = new HashMap<String,String>();
            return new ModelAndView("fergot", "message", lsMsg);
    }

    @RequestMapping("/register")  
    public ModelAndView registerForm(HttpServletRequest req,HttpServletResponse response) throws IOException{  
        HashMap<String,String> lsMsgs = new HashMap<String,String>();
        lsMsgs.put("Authorized", "false");
            lsMsgs = generalUtils.getInstance().addUser(req);
            if((lsMsgs.get("Authorized")).equals("true")){
                response.sendRedirect("login.html");
            }
            return new ModelAndView("register", "message", lsMsgs);
    }


}

1 个答案:

答案 0 :(得分:0)

1)两种方式都可以。但是你想要最佳实践,所以我的建议是为每个页面创建单独的控制器类。在大多数情况下,这是常见的选择。另一方面,如果您的应用程序非常小,即使您使用单个控制器也不是一个大问题。

选择哪种方式的核心问题是哪种方式在未来可以更容易维护,哪种方式对其他方式更具可读性。

2)你说你不想使用弹簧形式标签,当然可以。放轻松,你不能使用你不想使用的弹簧的任何部分,没关系。