spring註解controller示例

依賴庫 spring 3.0php

配置web.xml文件以下:css

<?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,須要指定路由maphtml

<?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接口java

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 {
       //一、收集參數、驗證參數
       //二、綁定參數到命令對象
       //三、將命令對象傳入業務對象進行業務處理
       //四、選擇下一個頁面
       ModelAndView mv = new ModelAndView();
       //添加模型數據 能夠是任意的POJO對象
       mv.addObject("message", "Hello World!");
       //設置邏輯視圖名,視圖解析器會根據該名字解析到具體的視圖頁面
       mv.setViewName("hello"); // jsp/hello.jsp
       return mv;
    }
}

2,mywork-servlet.xm使用註解方式以下web

<?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,指定路由spring

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代碼以下:spring-mvc

<%@ 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微框架,參考mvc

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

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

相關文章
相關標籤/搜索