zoukankan      html  css  js  c++  java
  • spring注解controller示例

    依赖库 spring 3.0

    配置web.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
      <display-name>mywork</display-name>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      
      <servlet>
          <servlet-name>mywork</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>mywork</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>
      
      <error-page>
          <error-code>404</error-code>
          <location>/404.jsp</location>
      </error-page>
    </web-app>

    1,mywork-servlet.xml使用传统Bean方式指定控制器方式如下(配置HandlerMapping与HandlerAdapter,需要指定路由map

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Bean头部 -->
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:util="http://www.springframework.org/schema/util"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
     
        <!-- HandlerMapping -->
        <bean class ="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
       
        <!-- HandlerAdapter -->
        <bean class ="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
       
        <!-- ViewResolver -->
        <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
           <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
           <property name="prefix" value="/WEB-INF/jsp/"/>
           <property name="suffix" value=".jsp"/>
        </bean>
       
        <!-- curl http://127.0.0.1:8080/mywork/demo.php -->
        <bean name="/demo.php" class="com.ciaos.demo.DemoController"/>  
    </beans>

    controller中需要集成Controller类,并实现handleRequest接口

    package com.ciaos.demo;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    public class DemoController implements Controller {
        @Override
        public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
           //1、收集参数、验证参数
           //2、绑定参数到命令对象
           //3、将命令对象传入业务对象进行业务处理
           //4、选择下一个页面
           ModelAndView mv = new ModelAndView();
           //添加模型数据 可以是任意的POJO对象
           mv.addObject("message", "Hello World!");
           //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
           mv.setViewName("hello"); // jsp/hello.jsp
           return mv;
        }
    }

    2,mywork-servlet.xm使用注解方式如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Bean头部 -->
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:util="http://www.springframework.org/schema/util"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
     
        <context:component-scan base-package="com.ciaos"/>
        <mvc:annotation-driven /> 
        <mvc:resources mapping="/js/**" location="/WEB-INF/resource/js/"/>
        <mvc:resources mapping="/css/**" location="/WEB-INF/resource/css/"/>
        <!-- http://127.0.0.1:8080/mywork/css/test.css -->
        
        <!-- ViewResolver -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    </beans>

    实现controller,指定路由

    package com.ciaos.demo;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class DemoController {
        
        @RequestMapping("/demo.index") 
        public String index(Model model){
            model.addAttribute("message", "hello world");
            return "hello";
        }
    }

    jsp/hello.jsp代码如下:

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'hello.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        ${message}
      </body>
    </html>

     想要更简单快速搭建spring-mvc项目可以用spring-boot微框架,参考

    http://www.infoq.com/cn/articles/microframeworks1-spring-boot

    http://projects.spring.io/spring-boot/

  • 相关阅读:
    go 错误处理策略
    git merge
    oracle
    使用PHPExcel导入数据库,date数据的问题
    PhpWord使用
    ThinkPHP
    Memcache
    没用过docker就out了
    TCP三次挥手四次协议
    数据分析
  • 原文地址:https://www.cnblogs.com/ciaos/p/4115201.html
Copyright © 2011-2022 走看看