SpringMVC注解及实现页面跳转详解

合集下载

SpringMVC实现简单跳转方法(专题)

SpringMVC实现简单跳转方法(专题)

SpringMVC实现简单跳转⽅法(专题)简单跳转专题个⼈建议重新练习⼀遍搭建的过程,如果感觉⿇烦你可以直接复制上⼀个⼯程,但是需要修改pom.xml中的⼀点信息<groupId>com.hanpang.springmvc</groupId><artifactId>springmvc-demo01</artifactId><version>0.0.1-SNAPSHOT</version>1.核⼼配置类和加载类package com.hanpang.config;import ponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration@EnableWebMvc@ComponentScan(basePackages="com.hanpang.**.web")public class WebConfig {}package com.hanpang.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[] {WebConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {return null;}@Overrideprotected String[] getServletMappings() {return new String[] {"/"};}}2.JavaWeb阶段的跳转⽅式请注意SpringMVC的⽅法中的形参,框架给我们完成了实例化的操作package com.hanpang.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller//告知其是⼀个控制器public class Demo01Controller {@RequestMapping(path="/test01")public ModelAndView 传统⽅式跳转_请求转发(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { System.out.println("默认对形参的进⾏了实例化操作");request.getRequestDispatcher("/WEB-INF/jsp/demo01.jsp").forward(request, response);return null;}@RequestMapping(path="/test02")public ModelAndView 传统⽅式跳转_重定向(HttpServletRequest request,HttpServletResponse response) throws IOException {System.out.println("默认对形参的进⾏了实例化操作");response.sendRedirect(request.getContextPath()+"/view/result01.jsp");return null;}}NOTE: 这种⽅式我们⼏乎不再使⽤了,只是只是简单的演⽰和回顾⼀下,⾄少我们可以使⽤这种⽅式获取Servlet API 3.Controller跳转到JSP的⽅式演⽰在⽰例最后的时候,我们会加⼊JSP的视图解析器,开始阶段我们还是按照传统的⽅式,有⼀个循序渐进的过程package com.hanpang.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller//告知其是⼀个控制器public class Demo01Controller {@RequestMapping(path="/test03")public ModelAndView 默认情况下是请求转发(){ModelAndView mav = new ModelAndView();mav.setViewName("/WEB-INF/jsp/demo01.jsp");return mav;}@RequestMapping(path="/test04")public ModelAndView 设置重定向的⽅式(){ModelAndView mav = new ModelAndView();mav.setViewName("redirect:/view/result01.jsp");//或者//mav.setViewName(UrlBasedViewResolver.REDIRECT_URL_PREFIX+"/view/result01.jsp");return mav;}}感觉跟Java Web阶段的⽅式差不多,只是重定向的时候设置了⼀个简单的前缀4.Controller跳转到Controller的⽅式演⽰类似于从⼀个Servlet调到另⼀个Servletpackage com.hanpang.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller//告知其是⼀个控制器public class Demo01Controller {@RequestMapping(path="/test05")public ModelAndView 直接设置映射路径即可(){ModelAndView mav = new ModelAndView();mav.setViewName("/test03");return mav;}@RequestMapping(path="/test06")public ModelAndView 设置重定向(){ModelAndView mav = new ModelAndView();mav.setViewName("redirect:/test04");return mav;}}5.加⼊JSP的视图解析器上⾯的演⽰过程中,我们发现ModelAndView中setViewName是⽤来完成跳转的,这⾥⾯传递的数据是字符串,但是处理⽅式不太⼀样,当跳转的路径有前缀redirect:的时候,那么处理⽅式不⼀样.还有,如果我们有多个类似/WEB-INF/jsp/demo01.jsp形式的字符串的时候,我们发现公共的部分很多,SpringMVC给我们提供了⼀个专门处理 Controller请求转发JSP页⾯的类.请注意我的描述: 如果发现你传递的字符串没有设置任何前缀标识,那么默认情况下使⽤配置JSP视图解析器处理,并且完成请求转发的操作注解:配置核⼼配置类package com.hanpang.config;import org.springframework.context.annotation.Bean;import ponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.ViewResolver;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.view.InternalResourceViewResolver;import org.springframework.web.servlet.view.JstlView;@Configuration@EnableWebMvc@ComponentScan(basePackages="com.hanpang.**.web")public class WebConfig {@Bean//实例化public ViewResolver viewResolver() {InternalResourceViewResolver jspViewResolver = new InternalResourceViewResolver();jspViewResolver.setViewClass(JstlView.class);//springmvc⽀持jstl标签jspViewResolver.setPrefix("/WEB-INF/");jspViewResolver.setSuffix(".jsp");return jspViewResolver;}}**NOTE:**请注意⽅法上的注解@Bean⽅法等价于XML中的代码如下<bean id="jspResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/"/><property name="suffix" value=".jsp"/><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/></bean>改进Controller跳转JSP代码该视图解析器只能针对于JSP的请求转发,对重定向⽆效,请注意代码的注释内容@RequestMapping(path="/test03")public ModelAndView 默认情况下是请求转发(){ModelAndView mav = new ModelAndView();//mav.setViewName("/WEB-INF/jsp/demo01.jsp");//改进后:默认情况下,会使⽤JSP视图解析器处理,// prefix+"jsp/demo01"+suffix => /WEB-INF/jsp/demo01.jspmav.setViewName("jsp/demo01");//发现字符串没有前缀修饰return mav;}@RequestMapping(path="/test04")public ModelAndView 设置重定向的⽅式(){ModelAndView mav = new ModelAndView();//解析器对重定向⽆效mav.setViewName("redirect:/view/result01.jsp");return mav;}改进Controller跳转Controller代码@RequestMapping(path="/test05")public ModelAndView 直接设置映射路径即可(){ModelAndView mav = new ModelAndView();mav.setViewName("/test03");return mav;}当配置完JSP视图解析器后,对上述的代码再次进⾏测试,查看访问结果有惊喜符合我们之前说的"/test03"是⼀个字符串,默认情况下会使⽤JSP视图解析器进⾏处理,那么如何改进呢?可以设置前缀"forward:",改进代码如下:@RequestMapping(path="/test05")public ModelAndView 直接设置映射路径即可(){ModelAndView mav = new ModelAndView();mav.setViewName("forward:/test03");//或者//mav.setViewName(UrlBasedViewResolver.FORWARD_URL_PREFIX+"/test03");return mav;}当发现字符串使⽤forward:修饰后,处理情况改变为从Controller请求转换到另⼀个Controller,⽽如果做到重定向的话,代码如下:@RequestMapping(path="/test06")public ModelAndView 设置重定向(){ModelAndView mav = new ModelAndView();mav.setViewName("redirect:/test04");return mav;}6.InternalResourceViewResolver 附录InternalResourceViewResolver:它是URLBasedViewResolver的⼦类,所以URLBasedViewResolver⽀持的特性它都⽀持。

restcontroller注解中的值_概述及解释说明

restcontroller注解中的值_概述及解释说明

restcontroller注解中的值概述及解释说明引言是一篇文章的开端,它旨在介绍和概述即将探讨的主题。

在本文中,我们将首先进行概述,简要介绍将要讨论的主题——RestController注解中的值。

接着会介绍文章的结构,概括列出各部分内容的目标和安排。

最后,我们会明确文章撰写的目的,也就是为什么要深入研究这个特定主题及其重要性。

文章结构是为了帮助读者更好地理解整体内容,在本文中包括RestContoller 注解、RestContoller注解中的值以及与之相关联的资源路径映射规则等部分。

每一个小节都将深入讲解与该主题相关的知识点,并力求提供清晰易懂的说明。

而撰写此篇长文的目的在于帮助读者深入理解RestController注解中值得设置、用法及实际应用技巧,并通过详细讲解带领读者逐步掌握这方面知识。

期望借此文引发读者对于Spring框架和RESTful服务开发有更进一步了解和兴趣。

2. RestController注解RestContoller注解是Spring框架中的一个核心注解之一,用来标识一个类是处理HTTP请求的控制器。

通过使用@RestController注解,我们可以将一个普通的Java类转换为RESTful风格的Web服务控制器。

2.1 什么是RestController注解@RestController注解是@Controller和@ResponseBody注解的组合,表示该类处理HTTP请求并将返回值直接作为HTTP响应体返回给客户端。

简单来说,@RestController相当于@Controller + @ResponseBody。

2.2 使用RestController注解的好处使用@RestController注解的好处之一是使代码更加简洁明了。

通过@RestController,我们不再需要在每个方法上面都添加@ResponseBody注解来指定返回结果需要序列化为JSON或XML格式。

Spring MVC经典教程,Spring Web批注

Spring MVC经典教程,Spring Web批注

Spring MVC解析,Spring Web批注1.概述在本教程中,我们将从org.springframework.web.bind.annotation包中探索Spring Web注释。

2. @RequestMapping简单地说,@RequestMapping 标记请求处理方法里面@Controller班; 可以使用以下命令进行配置:∙路径或其别名,名称和值:方法映射到的URL∙方法:兼容的HTTP方法∙参数:根据HTTP参数的存在,不存在或值过滤请求∙标头:根据HTTP标头的存在,不存在或值过滤请求∙消耗:方法可以在HTTP请求正文中消耗的媒体类型产生:该方法可以在HTTP响应正文中产生的媒体类型这是一个简短的示例:1 2 3 4 5 6 7 8 @Controllerclass VehicleController {@RequestMapping(value = "/vehicles/home", method = RequestMethod.GET) String home() {return "home";}}如果我们在类级别应用此注释,则可以为@Controller类中的所有处理程序方法提供默认设置。

唯一的例外是Spring不会用方法级别设置覆盖的URL,而是附加两个路径部分。

例如,以下配置与上述配置具有相同的效果:1 2 3 4 5 6 7 @Controller@RequestMapping(value = "/vehicles", method = RequestMethod.GET) class VehicleController {@RequestMapping("/home")String home() {return "home";8 9 } }此外,@GetMapping,@PostMapping,@PutMapping,@DeleteMapping 和@PatchMapping是@RequestMapping的不同变体,其HTTP方法已分别设置为GET,POST,PUT,DELETE和PATCH。

SpringMVC(思维导图)

SpringMVC(思维导图)

@RequestMapping注解
@RequestMapping注解的位置
如果按上面的一个请求对应一个控制器方法来处理又会出现一个新问题,项目中 有很多模块,可能多个模块中都有一个list列表功能,那么就很尴尬
@RequestMapping注解的Value属性
@RequestMapping注解的value属性通过请求的请求地址匹配请求映射
SpringMVC简介
MVC是一种软甲架构思想,将软件按照模型,视图,控制器来划分
什么是MVC
M:Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分为两类
V:View,视图层,指工程中的html或jsp等页面,作用是于用户进行交互,展示 数据
一类称为实体类Bean:专门存储业务数据的,如Studnet,User等
转发视图
SpringMVC中默认的转发视图是InternalResourceView
什么是SpringMVC
SpringMVC是Spring的一个后续产品,是Spring的一个子项目
SpringMVC是Spring为表述层开发提供的一整套完备的解决方案。在表述层框架 经历Strust,WebWork,Strust2等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC作为JavaEE项目表述层开发的首选方案
域对象共享数据
使用map向request域对象共享数据
使用ModelMap向request域对象共享数据
Model,ModelMap,Map的关系
Model,ModelMap,Map类型的参数其实本质上都是BindingAwareModelMap 类型。Model是一个接口,Model是一个类,Map是一个接, ExtendedModelMap则继承ModelMap并实现了Model,而ModelMap继承了 LinkedHashMap,也就间接继承了LinkedHashMap;而 BindingAwareModelMap继承了ExtendedModelMap,也就说明 BindingAwareModelMap即可实例Map,也可以实例Model,ModelMap,所打印 类型结果都为BindingAwareModelMap

SpringMVC注解及实现页面跳转详解汇总

SpringMVC注解及实现页面跳转详解汇总

Spring MVC第一讲:SpringMVC 页面跳转实例,通过请求访问start.jsp 页面1.1 加包1.2 web.xml<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.Di spatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>abc1.3 建springMVC-servlet.xml(注:spring默认要求建立在WEB-INF目录下,并且名称为servlet-name_servlet.xml<beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-inst ance"xmlns:p="/schema/p"xmlns:context="/sch ema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/sprin g-context-3.0.xsd"><context:component-scanbase-package=".controllers" /><beanclass="org.springframework.web.servlet.view.InternalRes ourceViewResolver"><property name="prefix"value="/WEB-INF/page/"/><property name="suffix" value=".jsp"/></bean></beans>1.4 StartController.javapackage .controllers;import org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class StartController {@RequestMapping(value="/start")public String start(){System.out.println("start method invoked...");return "start";}}1.5 新建WEB-INF/page/start.jsp1.6 访问:http://localhost:8080/springMVC_001/start.do 总结:本例子搭建一个简单的spingmvc实例,通过本例学习springMVC最简单的流程及搭建元素。

SpringMVC框架知识点详解

SpringMVC框架知识点详解

SpringMVC框架知识点详解官⽅的下载⽹址是:⼀、Spring MVC简介1.1Spring MVC⼯作流程映射器:主要是根据浏览器上输⼊的url来映射所有满⾜要求的Handle(控制器类)适配器:主要是决定调⽤哪个Handler来实现具体的业务逻辑1.2Spring MVC VS Struts21)springmvc的⼊⼝是⼀个servlet,即前端控制器;struts2⼊⼝是⼀个filter过虑器,即前端过滤器,2)springmvc是基于⽅法开发(控制器类是单例的,不可能维护实体变量),传递参数是通过⽅法形参,可以设计为单例;struts2是基于类开发(维护⼀个实体变量),传递参数是通过类的属性,只能设计为多例3)springmvc通过参数解析器是将request对象内容进⾏解析成⽅法形参,将响应数据和页⾯封装成ModelAndView对象,最后⼜将模型数据通过request对象传输到页⾯;struts采⽤值栈存储请求和响应的数据,通过OGNL存取数据4)springmvc开发运⾏速度快于struts2⼆、Spring MVC⼯程搭建(xml)2.1导⼊springioc,springweb , springmvc相关的jar包2.2在/WEB-INF/ web.xml⽂件配置SpringMVC的前端控制器DispatcherServlet(前端控制器)<!-- 注册springmvc核⼼控制器 --><servlet><!-- servlet-name名字随便写 --><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通知DispatcherServlet去指定的⽬录下加载springmvc.xml配置⽂件classpath:是在⼯程的src路径下寻找如果不配置init-param的话,控制器会⾃动寻找/WEB-INF/<servlet-name>-servlet.xml⽂件--><init-param><!-- 值是固定的,相当于键值对 --><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.action</url-pattern>//拦截请求</servlet-mapping>注:在默认情况下:springmvc框架的配置⽂件必须叫<servlet-name>-servlet.xml且必须放在/WEB-INF/⽬录下,我们可以在web.xml⽂件中,为DispatcherServlet配置⼀个初始化参数,让它去我们指定的⽬录下加载springmvc.xml配置⽂件2.3配置springmvc.xml注:该配置⽂件的命名规则遵循web.xml⽂件中核⼼控制器配置。

spring mvc深入解析

spring mvc深入解析

Spring JPetStore学习小结(1)发表于3/28/2005 由site admin※业务层主要的类和接口位于org.springframework.samples.jpetstore.domain.logic包中。

业务层其实很简单,主要是一个PetStoreFacade接口,该接口在JPetStore 中只有一个唯一的实现类PetStoreImpl,它提供了很多供Web层调用的方法,而绝大多数方法都只是简单的调用了数据访问层的Dao类所提供的方法。

domain.logic包中还有两个供Web层访问的validator,AccountValidator和OrderValidator,它们实现自spring的Validator接口,由于使用了spring提供的helper class ValidationUtils,因此看起来也十分简洁。

通过在servlet配置文件中为AccountFormController和AccountFormController指定validator属性,从而为Account和Order提供了验证功能。

不过在这里,这些Validator无疑是依赖于spring框架的。

<bean name=\‖/shop/newAccount.do\‖class=\‖org.springframework.samples.jpetstore.web.spring.AccountFormCont roller\‖><property name=\‖petStore\‖><ref bean=\‖petStore\‖/></property><property name=\‖validator\‖><ref bean=\‖accountValidator\‖/></property> <property name=\‖successView\‖><value>index</value></property></bean><bean id=\‖secure_editAccount\‖class=\‖org.springframework.samples.jpetstore.web.spring.AccountFormCont roller\‖><property name=\‖petStore\‖><ref bean=\‖petStore\‖/></property><property name=\‖validator\‖><ref bean=\‖accountValidator\‖/></property> <property name=\‖successView\‖><value>index</value></property></bean>另外,还有一个AOP advice,SendOrderConfirmationEmailAdvice,用于在完成一条order的数据库插入之后,向用户发送一封确认邮件,相应的配置位于applicationContext.xml中。

以SpringMVC注解的形式 从Controller跳到另一个Controller 实现登入页面的跳转

以SpringMVC注解的形式 从Controller跳到另一个Controller 实现登入页面的跳转

以SpringMVC注解的形式从Controller跳到另一个Controller 实现登入页面的跳转使用springmvc注解的形式实现(登录成功跳到一个Controller,登录失败跳到一个报错信息页面)一:登入功能的Controller层@Controller //注入:@RequestMapping("/admin/login.do") //请求路径://注:使用@Autowired就不用生成get set方法@Autowiredprivate IAdminServletadminServlet;/*** 跳转登录页** @param adminname* @param password* @return 登录页* @throws IOException*/public String login(String adminname,String password){Admin admin=new Admin(adminname, password); //新建一个对象List<Admin>adminslisList=adminServlet.getNameByPwd(admin);//通过用户名将对象放入集合中if (adminslisList.size()!=0) {//将对象保存到session中super.getSession().setAttribute("admin", adminslisList.get(0));("登录成功"); //打印日志//使用关键字redirect重定向if (ShiroUtils.isAuthenticated()) { //获取当前用户,判断是否已登入 return "redirect:/merchant/main"; //返回请求路径,跳转页面 }else {System.out.println("登录失败");//打印出错误信息super.getRequest().setAttribute("ErrorMsg", "用户名或者密码错误!");return"login/login"; //返回登入页面二:登录成功之后要重定向的Controller类@Controller@RequestMapping("/merchant/main")public class Select_MerchantAction extends BaseAction {@Autowiredprivate IMerchantServletmerchantServlet;//查询全部的@RequestMapping(params = "method=cc")public String selectAll(){List<Merchant>listMerchants=merchantServlet.getByname(null);//将数据保存到Request中super.getRequest().setAttribute("listMerchants", listMerchants);//转发到登入后主页面return "/common/main";三:主页面的代码在页面遍历保存在request中的数据//账号、密码、手机号、地址<c:forEach items="${requestScope.listMerchants}" var="Merchant"> <tr><td>${Merchant.merchantTypeName}</td><td>${Merchant.areaName}</td><td>${Merchant.merchantName}</td><td>${Merchant.merchantPhone}</td><td>${Merchant.merchantAddress}</td> </tr></c:forEach>}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Spring MVC第一讲:SpringMVC页面跳转实例,通过请求访问start.jsp页面1.1加包1.2web.xml<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.Dispatche rServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>abc1.3建springMVC-servlet.xml(注:spring默认要求建立在WEB-INF目录下,并且名称为servlet-name_servlet.xml<beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"xmlns:context="/schema/conte xt"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.x sd/schema/context/schema/context/spring-context-3.0.xsd"><context:component-scanbase-package=".controllers"/><beanclass="org.springframework.web.servlet.view.InternalResourceViewR esolver"><property name="prefix"value="/WEB-INF/page/"/><property name="suffix"value=".jsp"/></bean></beans>1.4StartController.javapackage .controllers;import org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class StartController{@RequestMapping(value="/start")public String start(){System.out.println("start method invoked...");return"start";}}1.5新建WEB-INF/page/start.jsp1.6访问:http://localhost:8080/springMVC_001/start.do总结:本例子搭建一个简单的spingmvc实例,通过本例学习springMVC最简单的流程及搭建元素。

第二讲灵活指定springmvc映射文件及路径更多情况下,对于第一讲中的springMVC-servlet.xml文件,我们并不想去放在WEB-INF,或者说我们可能在一个项目中并不是只有这一个文件,所以本节我们来讲述如何灵活配置此文件及文件名。

2.1修改web.xml<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/com/wdl/cn/config/mvc/*.xml </param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>2.2将WEB-INF下面的springMVC-servlet.xml移动到.config.mvc包下并将其修改名称为springMVC-first.xml2.3测试原来的路径:http://localhost:8080/springMVC_002/start.do总结:本讲主要学习了如何灵活配置springMVC配置文件。

下节将重点讲述@RequestMapping的使用。

第三讲springMVC_003@RequestMapping的使用3.1@RequestMapping使用位置a.使用于方法,此方法则可以被请求访问;b.使用于类,则可以将请求分(又叫分路径,分模块)包处理3.2将controller类上加@RequestMapping,修改StartController.javapackage .controllers;import org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping(value="/test")public class StartController{@RequestMapping(value="/start")public String start(){System.out.println("start method invoked...");return"start";}}3.3访问:http://localhost:8080/springMVC_003/test/start.do,由此可见,可以通过在类上加@RequestMapping将请求分路径。

3.4@RequestMapping参数详解a.value表示访问的路径b.method表示请求的方式GET|POSTstep1:修改StartController.javaimport org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controller@RequestMapping(value="/test")public class StartController{@RequestMapping(value="/start",method=RequestMethod.GET)public String start(){System.out.println("start method invoked...");return"start";}@RequestMapping(value="/start",method=RequestMethod.POST)public String start2(){System.out.println("start2method invoked...");return"start";}}step2:修改start.jsp模拟POST请求3.5访问http://localhost:8080/springMVC_003/test/start.do,接着转到start.jsp页面,接着点击页面的中按钮,发送POST请求,则可以看出不同的请求方式可以调用不同的方法。

3.6参数传递(常用参数传递,restful风格参数传递)a.httpservletreqeust方式参数传递step1:修改StartController.javapackage .controllers;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controller@RequestMapping(value="/test")public class StartController{@RequestMapping(value="/start",method=RequestMethod.GET)public String start(HttpServletRequest request){System.out.println("start method invoked...");String name=request.getParameter("name");int age=Integer.parseInt(request.getParameter("age"));System.out.println("name="+name+"age="+age);return"start";}@RequestMapping(value="/start",method=RequestMethod.POST)public String start2(){System.out.println("start2method invoked...");return"start";}}step2:访问:http://localhost:8080/springMVC_003/test/start.do?name=zhangsan&a ge=45b.restfull风格参数传递step1:修改StartController.javapackage .controllers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controller@RequestMapping(value="/test")public class StartController{@RequestMapping(value="/start/{name}/{age}",method=RequestMethod.GET)public String start(@PathVariable("name")String name,@PathVariable("age")int age){System.out.println("start method invoked...");System.out.println("name="+name+"age="+age);return"start";}@RequestMapping(value="/start",method=RequestMethod.POST)public String start2(){System.out.println("start2method invoked...");return"start";}}step2:访问时,将参数值加入请求路径http://localhost:8080/springMVC_003/test/start/zhangsan/45.do总结:本讲主要讲述请求参数传递,主要掌握HttpServletRequest方式与restfull 风格参数传递,下讲主要讲述form表单提交第四讲form表单提交使用struts2后,我们习惯将form表单的数据封装成一个对象,这也是面向对象编程的一个思维,本节讲述form表单提交。

相关文档
最新文档