首页 > 代码库 > spring注解controller示例

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;@Controllerpublic 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="http://www.mamicode.com/styles.css">    -->  </head>    <body>    ${message}  </body></html>

 

spring注解controller示例