之前我们说过一个springMVC简单的例子,基于注解的springMVC会与之前的小例子有些不同,但是我们要明白一个事情,这里的不同仅仅是将在配置文件中完成的事情交给了注解,让框架帮我们做一些事情以减少我们的代码量,但基本的spring框架的原理都是一样的,等我们说完这个小例子就会明白了~
一、建web项目
二、引入类库
只是多了一个注解要用到的jar包。
三、配置web.xml
这样配置完后,这个项目所有的请求都会被过滤。
四、创建spring的配置文件
这个文件可以放在项目的WEB-INF下,这样会默认找到它,值得注意的是,文件名必须是:web.xml中配置的servlet的名字-servlet.xml,比如,我们在web.xml中配置了一个名叫action的servlet,就需要建一个名为action-servlet.xml的配置文件;
这个文件也可以放在src下,只不过需要在web.xml中做个初始化配置来找到这个文件的位置,配置如下:
有了这个配置的话,文件名就可以任性了,不用和web.xml中的servlet名相同了。
然后继续说,这个配置文件中要配置的内容:
之前的例子我们是在这个配置文件中一一配置哪个请求对应找哪个控制器类,还有要配置视图解析器,有了注解后,我们可以很简单:视图解析器依然要有,然后再配置注解驱动、组件扫描,具体配置如下:
base-package中写的是一个包,这是我自己新建的,今后加注解的controller都写在这个包下,大家可以配置自己的包的名字。
五、创建有注解的控制器类
一般项目中,根路径会写成模块名,子路径会写成增、删、改、查等方法名,配置完成后,这样访问:http://localhost/项目名/根路径/子路径。
方法中返回的逻辑名,会被视图解析器解析,这个我们不再细说了。
到此,一个最基本的基于注解的springMVC的核心步骤就是这些了。
下面我们说一下在控制器中接收请求中的数据的几种方法:
比如有这样一个请求:http://localhost/spring_mvc/home/a?id=001
1、在方法的参数列表中加一个与请求中的参数同名的参数,spring会帮我们自动匹配注入这个参数的值:
如果请求中有一串参数的时候,我们加在方法后的参数顺序与请求中不同也没关系,只要同名就行,spring就是这么强大。
如果你非要起一个别的参数名,也可以,只不过要加个配置,让这个不同名参数可以拿到值:
2、用HttpServletRequest对象的getParameter()方法:
3、在方法的参数列表中加实体类的对象:
下面我们再说一下控制器类要传值给return后的页面怎么传:
红框中是两种方法:
一种是用HttpServletRequest对象的setAttribute()方法;
一种是放在map中。
到其他的页面,把参数的值取出来就行啦。