我正在使用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);
}
}
答案 0 :(得分:0)
1)两种方式都可以。但是你想要最佳实践,所以我的建议是为每个页面创建单独的控制器类。在大多数情况下,这是常见的选择。另一方面,如果您的应用程序非常小,即使您使用单个控制器也不是一个大问题。
选择哪种方式的核心问题是哪种方式在未来可以更容易维护,哪种方式对其他方式更具可读性。
2)你说你不想使用弹簧形式标签,当然可以。放轻松,你不能使用你不想使用的弹簧的任何部分,没关系。