SpringMVC注解方式的使用
如何实现XML代码提示功能
与MyBatis一样,在使用注解方式之前,首先检查XML是否有代码提示功能,如果没有,需要进行配置。
以bean命名空间为例,配置其代码提示功能。
首先应当确认引入了bean命名空间,如果已经建好了XML配置文件,但是忘记引入bean命名空间。可以:
关闭XML,右键XML文件,在open with选项中选择以Spring Config Editor方式打开,这时文件左下角出现Namespaces,点击,选中bean命名空间并添加即可,配置XML注解方式需要的最基础的命名空间有bean、mvc、context;均可以这种方式引入。
在XML文件中找到类似http://www.springframework.org/schema/beans/spring-beans-4.2.xsd的代码并复制;
window-->Prefrences-->XML-->XML Catalog-->User Specified Entries-->Add
Location中点击File System,将之前下载的spring框架schema/beans目录下的4.2.xsd文件添加进来;Key type选择Schema Location,Key中内容将之前复制的链接粘贴上;点击OK即可添加代码提示功能。
使用注解之前的配置
<!-- 启动mvc注解方式 --> <mvc:annotation-driven/> <!-- 扫描包 --> <context:component-scan base-package="self.exercise.controller"></context:component-scan> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver"> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> </bean>
扫描的路径为包的路径,解析器根据该路径扫描该包下所有的方法,如果发现了注解就执行里面的操作,得到ModelAndView对象并进行视图解析。
如果扫描的形式为self.*.controller,*代表一层目录;例如self.exercise.controller、self.base.controller等包都可被扫描到;
如果扫描的形式为self.**.controller,**代表任一层数的目录;例如self.rbac.exercise.controller、self.base.controller等包都可被扫描到。
使用注解
建立一个普通的类。
在类前面使用注解@org.springframework.stereotype.Controller,该注解相当于XML方式中bean标签中的class属性;在类的方法前使用注解
@org.springframework.web.bind.annotation.RequestMapping,该注解相当于XML方式中bean标签中的id属性,指明了请求路径。
@Controller // 相当于<bean class="self.exercise.controller"></bean> public class IndexController { @RequestMapping("index") // 相当于<bean id="index"></bean> public ModelAndView index() { ModelAndView mav = new ModelAndView(); mav.setViewName("index"); return mav; } }