自定义解析器【本节讲述利用自己定义的视图,进行返回数据】
①src/main/resources下的spring.xml问价中添加一个bean,配置它的优先级
在com.ius.test包下创建MyFirstView.java类,让这个类被IOC管理加上@Component注解,让这个类实现implements
View接口,然后重写接口中的两个方法(第一个方法返回值是text/html,跟one.jsp页面的content的类型一致),这个自定义视图的好处就是可以自定义返回值的类型,比如还可以返回一个EXCEL表格类型的视图【建议学习POI】
然后在控制器中设置return
"myFirstView",myFirstView是自定义的类,放到return中,首字母小写,方法的返回值是String类型的
运行one.jsp,点击超链接,显示的结果是
后面的乱码是应为在视图中添加了中文,如何解决????????????
总结:配置beanname解析器
< bean class="org.springframework.web.servlet.view.BeanNameViewResolver"
>
<
property name="order" value="100" >< /property >
< /bean>
注意:要设定order优先级,小的在前。
调用
@RequestMapping(value={"/hello2"})
public
String hello2(){
System.out.println("hello2");
return
"myFirstView";
}
注意:return
"myFirstView"; 就是类名的首字母小写。IOC中bean的名字
调用顺序
先调用BeanNameViewResolver
进行解析,
如果解析不了,调用InternalResourceViewResolver
解析
-------------------------------------------------------------------------------------------------------------
静态资源的访问
例如在页面上显示一个头像或者图片
①在spring.xml文件中加入< mvc:default-servlet-handler/
>标签,默认经过的控制器
②在webapp下,新建一个文件包imgs,在里面加入一个图片,在one.jsp页面中引入这个图片
运行one.jsp页面
但是点击超链接后,控制器访问不了了,为什么呢,因为在spring.xml文件中配置了一个默认的控制器,所以不走原先的控制器了,所以在配置的默认控制器<
mvc:default-servlet-handler/
>标签的下面继续加【annotation:注解】注解驱动就可以了
运行one.jsp页面
点击超链接或者按钮
可以正常访问控制器了
总结:静态资源访问
在配置文件中添加
标配
< mvc:default-servlet-handler/ >
< mvc:annotation-driven ><
/mvc:annotation-driven >