標籤:處理 int end welcome new message scan mvc ext
第一種:不配置controller 的bean。(註解的方式)
在dispatch-servlet.xml中,在beans節點下配置context:component-scan節點
<!-- 啟用spring註解--><context:component-scan base-package="com.loong.controller" />
這種方式需要在Controller對象上使用@RequestMapping("hello")指定方法對應處理的路徑,比如一下兩種方式:
舉例1:url:http://localhost:8080/demo1/welcome/hello
@Controller @RequestMapping("/welcome") public class HelloWorldController { @RequestMapping(value="/hello" ,method=RequestMethod.GET) public String printWelcome(ModelMap model){ model.addAttribute("message" ,"Spring 3 MVC Hello World"); return "hello"; } }
舉例2:url:http://localhost:8080/demo1/home
@Controller public class HomeController { @RequestMapping("home") public String home(){ return "home"; }}
第二種方式配置controller的bean(url匹配bean)
在xxx-servlet.xml中
<context:component-scan base-package="com.controller" /> <!-- HandlerMapping --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <!-- HandlerAdapter --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><!-- 處理器 --><bean name="/hello" class="com.controller.HelloWorldController" />
BeanNameUrlHandlerMapping:表示將請求的URL和Bean名字映射,如URL為 “上下文/hello”,則Spring設定檔必須有一個名字為“/hello”的Bean,上下文預設忽略。
SimpleControllerHandlerAdapter:表示所有實現了org.springframework.web.servlet.mvc.Controller介面的Bean可以作為Spring Web MVC中的處理器。如果需要其他類型的處理器可以通過實現HadlerAdapter來解決。
提示:關於寫不寫HandlerMapping 和HandlerAdapter的問題,參考:
http://www.imooc.com/article/4293
這種情況Controller類要實現Controller介面:
public class HelloWorldController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {// TODO Auto-generated method stub ModelAndView mv = new ModelAndView(); mv.addObject("message", "HelloWorld"); mv.setViewName("hello"); return mv;}}
第三種配置Controller中bean的方式,使用一個統一配置集合,對各個URL對應的Controller做關係映射
在xxx-servlet中
<bean id="loginController" class="com.msm2.controller.LoginController" /><bean id="mainController" class="com.msm2.controller.MainController" /><bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="login">loginController</prop><prop key="userLogin">mainController</prop></props></property></bean>
在Controller類中
url:http://localhost:8080/msm2/login
@Controllerpublic class LoginController extends AbstractController{ @Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView(); mav.addObject("login"); return mav;}}
原文地址:http://www.cnblogs.com/ysloong/p/6388962.html
springMVC controller配置方式總結