zoukankan      html  css  js  c++  java
  • springMVC controller配置方式总结

    第一种:不配置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

  • 相关阅读:
    转载Typora学习笔记
    SpringMVC整体接受前台参数
    基于SSM框架实现oa项目
    Don't know how to iterate over supplied "items" in &lt;forEach&gt;
    springMVC自定义类型转换器(date类型转换)
    springMVC异常处理
    linux服务器基础运维
    什么是服务器
    mysql binlog日志 恢复数据,mysqldump备份
    nginx LVS Haproxy
  • 原文地址:https://www.cnblogs.com/springwind2006/p/7517726.html
Copyright © 2011-2022 走看看