首页 > 代码库 > SpringMVC入门学习(二)应用注解方式+注解优化

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=http://www.mamicode.com/"/">>

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=http://www.mamicode.com/"/user/addUser",method=RequestMethod.GET)>


Jquery.jsp(提交方式为post,而如果此时addUser的接收方式为GET

<form action="/SpringMVC/user/addUser" method="post">
	<h>SpringMVC注解</h>
	<br/>
	<div>
		${result }
	</div>
		<input type="submit" value=http://www.mamicode.com/"post请求">>

出现以下错误:

 

访问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:


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




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