SpringMVC注解可以帮助我们快速地注入 属性和参数 提高开发效率。

由于

  1. 有相当一部分人讨厌xml配置方式

  2. 注解可以覆盖 xml则不能

  3. 使用注解比xml规范化,因为很多注解都是java的规范的范畴,当你使用象jndi,或jpa这样规范化统一框架时不需要更改注解 ,xml则不行

缺点:

不利于维护,springmvc xml配置文件可以看清所有的mvc架构,易于维护,可读性强。

运行的错误:

严重: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: javax/portlet/PortletResponse

上述问题一般就是jar包引错或者是

解决方案:

你bean里是不是引入了一个InternalResourceViewResolver类,这个类的包是web.servlet,不是web.portlet;
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

引入jar包

1.web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <servlet>
  11. <!--基础配置有springMVC配置的servlet路径-->
  12. <servlet-name>SpringMVC</servlet-name>
  13. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  14. <!--如果需要加载其他地方的多个springMVC配置文件-->
  15. <init-param>
  16. <param-name>contextConfigLocation</param-name>
  17. <param-value>classpath*:config/SpringMVCAnnotation-servlet.xml</param-value>
  18. <!--classpath*代表在src下寻找config文件夹再在其中寻找以-servlet.xml文件结尾的文件-->
  19. </init-param>
  20. <!--配置加载顺序的,数字越低优先级越高-->
  21. <load-on-startup>1</load-on-startup>
  22. </servlet>
  23. <servlet-mapping>
  24. <servlet-name>SpringMVC</servlet-name>
  25. <url-pattern>/</url-pattern><!-- 拦截所有请求 -->
  26. </servlet-mapping>
  27. </web-app>

web.xml

2.SpringMVCAnnotation-servlet.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  11. http://www.springframework.org/schema/mvc
  12. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
  13. <!-- 注解开始 -->
  14. <!--spring启动时的注解扫描包-->
  15. <context:component-scan base-package="annotation"></context:component-scan>
  16. <!-- 两个bean的作用是根据url找类,根据类去找方法-->
  17. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  18. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
  19. <!-- 静态资源访问 -->
  20. <mvc:resources location="/img/" mapping="/img/**" />
  21. <mvc:resources location="/js/" mapping="/js/**" />
  22. <!--以上两句就是设置spring的拦截器不对img文件夹与js文件夹的文件进行拦截-->
  23.  
  24. <!-- 视图解析器 -->
  25. <bean id="viewResolver"
  26. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27. <property name="prefix" value="/"></property> <!-- 前缀 -->
  28. <property name="suffix" value=".jsp"></property> <!-- 后缀 -->
  29. </bean>
  30. </beans>

SpringMVCAnnotation.xml

3.UserController.java

  1. package annotation;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.servlet.ModelAndView;
  6. @Controller
  7. public class UserController {
  8. //value指的是浏览器要请求的地址,method指的是请求的方式
  9. @RequestMapping(value="/user/addUser",method=RequestMethod.POST)
  10. public ModelAndView addUser(){
  11. String result ="---1.this is addUser---";
  12. return new ModelAndView("/annotation","result",result);
  13. }
  14. @RequestMapping(value="/user/delUser",method=RequestMethod.GET)
  15. public ModelAndView delUser(){
  16. String result ="---2.this is delUser---";
  17. return new ModelAndView("/annotation","result",result);
  18. }
  19. @RequestMapping(value="/user/toUser",method=RequestMethod.GET)
  20. public ModelAndView toUser(){
  21. String result ="---3.this is toUser---";
  22. return new ModelAndView("/touser","result",result);
  23. }
  24. }
  25. /*此处请注意,@Controller的使用。@RequestMapping(value="/user/addUser",method=RequestMethod.POST)中的value表示跳转路径,method表示通过哪种方式调用这个方法*/

Usercontroller.java

4.annotation.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. </head>
  11.  
  12. <body>
  13. <h1>SpringMVC注解1 <h1/><br>
  14. ${result}
  15. </body>
  16. </html>

annotation.jsp

5.touser.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>My JSP 'index.jsp' starting page</title>
  13. <meta http-equiv="pragma" content="no-cache">
  14. <meta http-equiv="cache-control" content="no-cache">
  15. <meta http-equiv="expires" content="0">
  16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  17. <meta http-equiv="description" content="This is my page">
  18. <!--
  19. <link rel="stylesheet" type="text/css" href="styles.css">
  20. -->
  21. </head>
  22.  
  23. <body>
  24. <form action="/springMVC4/user/addUser" method="post">
  25. <h1>SpringMVC注解</h1>
  26. <br>
  27. ${result }
  28. <input type="submit" value="post请求">
  29. </form>
  30. </body>
  31. </html>

touser.jsp

6.SpringMVC注解启用的更多相关文章

  1. springMVC注解启用及优化

    使用注解的原因 最方便的还是启用注解 注解方便,而且项目中很流行. 配置文件尽量减少,主要使用注解方式. Springmvc的注解是在2.5版本后有了注解,如何开启注解配置文件 Web.xml文件中不 ...

  2. Springmvc注解启用

      http://www.blogbus.com/wanping-logs/235898637.html 使用注解的原因 最方便的还是启用注解 注解方便,而且项目中很流行. 配置文件尽量减少,主要使用 ...

  3. springMVC(注解版笔记)

    springMVC(注解版) 较之于非注解版本,发生一下变化: 1.配置文件需要配置的标签有: <!-- 包的扫描,此包下面的所有包都启用注解 --> <context:compon ...

  4. springMVC 注解版

    http://blog.csdn.net/liuxiit/article/details/5756115 http://blog.csdn.net/hantiannan/article/categor ...

  5. SpringMVC注释启用

    这篇文章是我学习的网络视频SpringMVC写的过程. 谢谢公布各位前辈的视频 以下评论SpringMVC几个关键步骤,注意事项启用: 首先需要加载配置文件(假设请使用自定义路径) <? xml ...

  6. SpringMVC注解HelloWorld

    今天整理一下SpringMVC注解 欢迎拍砖 @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是 ...

  7. SpringInAction--Spring Web应用之SpringMvc 注解配置

    Spring MVC 是当前Web服务器中常用的结构,今天就来学习这相关的知识,首先上图——Spring请求的时候所经历的坎坷之路: (书上原话,算是解释..) 在请求离开浏览器时① ,会带有用户所请 ...

  8. springMVC注解初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  9. SpringMVC注解开发初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

随机推荐

  1. ActiveMQ 目录

    (1) ActiveMQ简介 (2) JMS基本概念和模型 (3) JMS的可靠性 (4) ActiveMQ结合Spring开发 (5)ActiveMQ支持的传输协议 (6)ActiveMQ消息存储持 ...

  2. phpmyadmin中访问时出现2002 无法登录 MySQL 服务器

    phpmyadmin中访问时出现2002 无法登录 MySQL 服务器! 解决方法如下: 修改phpmyadmin目录中libraries文件夹下的config.default.php文件 $cfg[ ...

  3. java 练手 谁是最好的Coder

    Problem A 谁是最好的Coder 时间限制:1000 ms  |  内存限制:65535 KB   描述 计科班有很多Coder,帅帅想知道自己是不是综合实力最强的coder. 帅帅喜欢帅,所 ...

  4. webpack 教程 那些事儿06-gulp+webpack多页

    本篇主要讲述用gulp+webpack构建多页应用 折腾到现在,项目还必须要进行,.vue文件必须要加载,也就是webpack必须引入.时间不多了,抛弃上个方案之后,只能牺牲热加载性能,用gulp+w ...

  5. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

    学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...

  6. 如何根据屏幕大小改变class的css样式

    /*当屏幕小于1200px*/ @media (max-width:1200px) { ...} 此处针对所有小于1200px屏幕的css属性. /*当屏幕小于1200px且大于992px*/ @me ...

  7. uMlet建模工具

    下载:http://www.umlet.com/ 无意中发现的一款建模工具,能快速搭建数据库模型,前置安装条件是java环境. 这是我建的user模型表,2个字段name和age,2个方法getAge ...

  8. Swift初学有一点难理解的东西,整理了一下,想明白了。

      func makeIncrementer() -> (Int -> Int) {      func addOne(number: Int) -> Int {           ...

  9. hiho #1325 : 平衡树·Treap

    #1325 : 平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? ...

  10. const 和宏的区别

    参考:http://blog.sina.com.cn/s/blog_79b01f6601018xdg.html (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行 ...