spring mvc使用html页面跳转,【8】SpringMVC页面和控制器之间的跳转--自定义视图和静态资源访问...

自定义解析器【本节讲述利用自己定义的视图,进行返回数据】

①src/main/resources下的spring.xml问价中添加一个bean,配置它的优先级

a4c26d1e5885305701be709a3d33442f.png

在com.ius.test包下创建MyFirstView.java类,让这个类被IOC管理加上@Component注解,让这个类实现implements

View接口,然后重写接口中的两个方法(第一个方法返回值是text/html,跟one.jsp页面的content的类型一致),这个自定义视图的好处就是可以自定义返回值的类型,比如还可以返回一个EXCEL表格类型的视图【建议学习POI】

a4c26d1e5885305701be709a3d33442f.png

然后在控制器中设置return

"myFirstView",myFirstView是自定义的类,放到return中,首字母小写,方法的返回值是String类型的

a4c26d1e5885305701be709a3d33442f.png

运行one.jsp,点击超链接,显示的结果是

a4c26d1e5885305701be709a3d33442f.png

后面的乱码是应为在视图中添加了中文,如何解决????????????

总结:配置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/

>标签,默认经过的控制器

a4c26d1e5885305701be709a3d33442f.png

②在webapp下,新建一个文件包imgs,在里面加入一个图片,在one.jsp页面中引入这个图片

a4c26d1e5885305701be709a3d33442f.png

运行one.jsp页面

a4c26d1e5885305701be709a3d33442f.png

但是点击超链接后,控制器访问不了了,为什么呢,因为在spring.xml文件中配置了一个默认的控制器,所以不走原先的控制器了,所以在配置的默认控制器<

mvc:default-servlet-handler/

>标签的下面继续加【annotation:注解】注解驱动就可以了

a4c26d1e5885305701be709a3d33442f.png

运行one.jsp页面

a4c26d1e5885305701be709a3d33442f.png

点击超链接或者按钮

a4c26d1e5885305701be709a3d33442f.png

可以正常访问控制器了

总结:静态资源访问

在配置文件中添加

标配

< mvc:default-servlet-handler/ >

< mvc:annotation-driven ><

/mvc:annotation-driven >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值