SpringMVC入门学习(二)应用注解方式+注解优化
来源:互联网 发布:七月十五插件数据下载 编辑:程序博客网 时间:2024/05/19 17:50
前篇已经介绍使用SpringMVC的方式进行环境搭建,以及一个简单的demo测试,下面我们再来介绍一下使用注解的方式,如何实现。
添加配置文件
springAnnotation-servlet.xml
<!-- 注解扫描包 --><context:component-scan base-package="com.tgb.web.controller.annotation" /><!-- 开启注解,这两种方式通用 --><!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /><bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> --> <mvc:annotation-driven></mvc:annotation-driven><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean>
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*:config/SpringMVC-servlet.xml</param-value> --> <param-value>classpath*:config/springAnnotation-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
实例测试:
添加UserController:
@Controllerpublic class UserController {/*方法的注解,value为浏览器的访问地址,method为接收方式*/@RequestMapping(value="/user/addUser",method=RequestMethod.GET)public ModelAndView addUser(){String result ="this is addUser------";/*向前台界面传值的方式---带参数的返回前台页面*/return new ModelAndView("/jquery","result",result);}@RequestMapping(value="/user/delUser",method=RequestMethod.GET)public ModelAndView delUser(){String result ="this is delUser------";return new ModelAndView("/jquery","result",result);}@RequestMapping(value="/user/toUser",method=RequestMethod.GET)public ModelAndView toUser(){/*返回的页面*/return new ModelAndView("/jquery");}}
Jquery.jsp(提交方式为post,而如果此时addUser的接收方式为GET)
<form action="/SpringMVC/user/addUser" method="post"><h>SpringMVC注解</h><br/><div>${result }</div><input type="submit" value="post请求"></form>
出现以下错误:
访问toUser时没有问题,但是当点击按钮时,报错!
解释:
当我们访问:http://localhost:8080/SpringMVC/user/toUser时,显示jquery页面,但是当我们点击jquery页面中的按钮时,会post提交到addUser的方法,而此时addUser的方法接收为Get,故报错。正确的方式是将addUser的接收方式改为POST
正确方式执行过程:
首先访问toUser,到达jquery页面,点击jquery页面的按钮,post提交到addUser,同时将addUser中的result参数返回
注意:
前台页面直接访问的方式只支持GET方式,即当我们的controller的接收方式均为GET时,均可以在浏览器中输入相应的地址访问到相应的页面
例如:
因为此时addUser的接收方式为GET,但是如果我们将它的接收方式改为Post,那么则会报如下错误,因为当我们直接访问页面,那么接收方式为Post,而提交方式默认为GET
我们想要get方法请求可以到,post方法请求也可以到
不想要区分的那么清楚,直接把那个配置删掉(method=RequestMethod.GET)
SpringMVC注解优化
1,对于要访问的均为同一目录下的方法时,可以这样修改
@RequestMapping("/user")
2,删除掉method的配置method=RequestMethod.GET
3,返回值为String类型
4,带参数使用
request.setAttribute("result",result);,引入import javax.servlet.http.HttpServletRequest;
优化后的Controller:
@Controller@RequestMapping("/user")public class UserController {@RequestMapping("/addUser")public String addUser(HttpServletRequest request){String result ="this is addUser------优化版";request.setAttribute("result", result);return "/jquery";}@RequestMapping("/delUser")public String delUser(HttpServletRequest request){String result ="this is delUser------优化版";request.setAttribute("result", result);return "/jquery";}@RequestMapping("/toUser")public String toUser(HttpServletRequest request){return "/jquery";}}
总结:应用注解的方式使得我们不必去配置文件中写那么多映射代码,减少了开发人员的工作量。但是对于我们来说无论是注解还是配置文件的方式我们均需要了解,个人觉得配置文件的方式更容易让我们理解。
- SpringMVC入门学习(二)应用注解方式+注解优化
- SpringMVC入门学习(二)应用注解方式+注解优化
- SpringMVC入门学习(二)应用注解方式+注解优化
- springMVC入门搭建(注解方式及注解应用)
- SpringMVC学习笔记(二):基于注解的方式
- 注解学习二:注解(Annotation)自定义注解入门
- SpringMvc注解方式开发入门
- SpringMVC注解开发方式二
- springmvc学习笔记(六)注解优化
- SpringMVC简单入门(注解)<学习随笔>
- springMVC学习笔记---注解优化
- SpringMVC非注解方式学习
- SpringMVC学习笔记——SpringMVC的简单应用(通过注解的方式)
- spring实用注解(二)--springMvc注解
- springmvc入门之注解方式重点解析
- SpringMVC入门程序-以注解方式
- SpringMVC的服务器验证二(注解方式实现)
- SpringMVC注解入门(一)
- 安卓权限大全
- s3c2440 与LCD的浅析
- QT Layout源码解析
- tomcat报空指针
- ASP.NET MVC3默认提供了11种ActionResult的实现(简单用法)
- SpringMVC入门学习(二)应用注解方式+注解优化
- log4j日志配置——Console+Database+E-Mail
- LEETCODE: Remove Duplicates from Sorted List
- 在ubuntu上创建scrapy爬虫
- TFT LCD
- [C++]_[初级]_[删除字符串中的前后空格]
- ie8下bootstrap3的Glyphicons图标不显示问题
- CocoaPods安装和使用
- 配置服务器过程中错误Cannot load php5apache2.dll into server的解决方法