SpringMVC入门学习(二)应用注解方式+注解优化

前篇已经介绍使用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:

@Controller
public 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:

总结:应用注解的方式使得我们不必去配置文件中写那么多映射代码,减少了开发人员的工作量。但是对于我们来说无论是注解还是配置文件的方式我们均需要了解,个人觉得配置文件的方式更容易让我们理解。

时间: 2024-08-04 13:52:44

SpringMVC入门学习(二)应用注解方式+注解优化的相关文章

SpringMVC入门学习(二)

SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. model.addAttribute()的使用 model接口的源代码: 由图可知,在addAttribute()中有两种入参方式,一种是指明名字var1,一种是不指明名字var1.在不指明名字中,会通过相近的去寻找. 在addAttribute()中,我们可以放任何对象: 首先先导入jsp标签maven

Objective C 快速入门学习二

Objective-C 类.对象.方法 1.编写一个复数类: #import <Foundation/Foundation.h>@interface Complex: NSObject //类声明,Complex继承NSObject { int iReal;//成员变量声明,在括号内 int iImag; } //成员函数声明,在括号外 -(void) print; -(void) setReal : (int) n; -(void)setImag : (int) d; @end //@int

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都

git入门学习(二):新建分支/上传代码/删除分支

一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有webpack_test项目了,我是在这个项目的基础上新建其他的分支并开展工作的.如图: 如果你对如何新建webpack_test项目不清楚,请参考我的前一篇文章:git入门学习(一):github for windows上传本地项目到github,操作步骤如下: 1.1.保留webpack_test项目

SpringMVC入门学习(三)+Spring应用(整合)

在整合之前我们再来回顾一下Spring和SpringMVC Spring: Spring框架的核心是提供了一个容器,该容器可以对Bean组件进行管理,例如创建Bean对象,销毁一个Bean对象等操作.此外该容器还具有IOC和AOP高级特性,将Bean对象调用解耦. SpringMVC: spring mvc是类似于struts的一个MVC开源框架,其实都是属于spring,spring mvc需要有spring的jar包作为支撑才能跑起来 Spring和SpringMVC整合不再需要拷jar包,

activiti入门学习二

一.上一篇入门学习的地址 https://www.cnblogs.com/yangk1996/p/10878449.html 二.单机演示Demo 12.使用UEL表达式动态增加流程处理人 从新创建一个流程,使其Assignee变成表达式的.然后从新创建流程. * @Description: 启动流程实例,动态设置assignee * @date: 2019/6/23 20:28 */ public class AssigneeUel { public static void main(Stri

SpringMVC入门学习(一) 环境搭建+实例演示

简单介绍SpringMVC SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回. DispatcherServlet是继承自HttpServlet的,既然SpringMVC是

SpringMVC基础学习(二)&mdash;开发Handler

一.Handler开发         Handler的开发方式在springmvc中有多种,下面我们主要讲解三种实现方式:实现Controller接口.实现HttpRequestHandler接口.使用注解.   1.实现HttoRequestHandler接口 ItemsController1.java /* * Handler开发方式1: 实现HttpRequestHandler接口 */ public class ItemsController1 implements HttpReque

SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

一.参数的传递 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica } 1.简单的参数传递 1 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ 2 * value:传入的参数名,required:是否必填,defaultValue:默认值 3 * } 4 */ 5 @RequestMapping("itemEdit") 6 public ModelAndView itemEdit(@R