码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC controller配置方式总结

时间:2017-09-13 22:12:16      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:处理   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 {
@Override
public 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

@Controller
public class LoginController extends AbstractController{ 
@Override
protected 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配置方式总结

标签:处理   int   end   welcome   new   message   scan   mvc   ext   

原文地址:http://www.cnblogs.com/springwind2006/p/7517726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!