最近刚刚开始学习SpringMVC,本人不善于长编大论,只是简要的说明下一些常用的几个简单的注解,自己也算总结一下下,大牛绕道。
首先我们要搭建Spring开发环境,从开始配置web.xml文件,相关配置:
简单的配置好web.xml后就开始我们的注解学习了
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
建立自己的Controllerl类(为普通的JAVA类就行)例如:cn.com.controller.UserController类
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value="/start/{name}",method=RequestMethod.GET)
public String start(@PathVariable("name") String name){
System.out.println(name);
String result = "index";
return result;
}
@RequestMapping("/test")
public String test(){
return "test";
}
@RequestMapping(value="/start",method=RequestMethod.POST)
public String login(@ModelAttribute User user){
String result = "login_succ";
System.out.println(user.getUserName()+";"+user.getPassword()+"post");
return result;
}
}
<!--扫描指定的注解包,将会扫描该包下所有class中的注解-->
<context:component-scan base-package="cn.com.dhcc.controller"></context:component-scan>
<!--配置视图解析类,指定class中返回String的前缀和后缀-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
接下来,来了解释下UserController中的注释吧:
@Controller
告诉Spring框架指定该类为一个Controller
@RequestMapping 可以用来修饰类和方法
指定该方法或者类的请求的URL,例如以上事例我要访问test(),则访问的URL必须是···/user/test,返回我指定路径/WEB-INF/page/下的test.jsp文件
上面看到了其中有两个属性:value 和 method
显而易见,value是指定其访问的url;而method则为访问该url的请求方式(即看是Get请求、Post请求或者其他),指定请求方式后就只能在指定的请求方式下访问
@PathVariable 用来指定请求的URL路径里面的变量,从而获取值
eg:当我用GET方式访问start方法时,···/user/start/zhangsan.do则我在start中获得参数name的值为“zhangsan”
注意:我们知道java编译有两种方式 debug和realse 主要区别大家可以百度下,我这就不详细讲解,重要的是当我们用
@PathVariable时如果不使用@PathVariable("指定变量") 则在realse编译后讲无法匹配方法参数变量和URL传过来的变量
@ModelAttribute 大家可以看看这边文章http://blog.csdn.net/li_xiao_ming/article/details/8349115,我自认不会总结的这么详细