返回值为字符串,主要有三种情况:
方法返回值为字符串:
- 重定向 / 服务端跳转逻辑视图名真的字符串
当返回的字符串有前缀时,代表不同的功能:
1、forward
2、redirect
总的功能看下图:
可以看到这里返回字符串 01 返回的是 名称为 01 的页面,如果就是想要返回字符串 01 呢?可以通过注解 @ResponseBody 来返回:
换句话说加了这个注解,你返回什么它就显示什么。如果每个方法都要加上,就会很麻烦,可以加在类上面:
Spring MVC 怎么接收跟发送 json 格式的对象呢?
首先先导入依赖:
然后是 java 代码:
然后看下结果:
可以看到 json 格式的返回成功了,但是时间的格式不对,需要格式化:
上图中,可以看到本来应该是 username 的字段,显示为 name,可以通过注解,修改生成后的 json 格式显示的属性名,让本来 username 改名为 name:
MVC的底层还是 ObjectMapper 来转换 json 格式和对象。
b、xml 配置 jackson 自定义转换逻辑如果不写注解,可以通过 xml 配置去完成 json 格式的转换:
注意:必须传进来的是 json 格式,而不是键值对方式。
然后是 web.xml 配置:
首先就在 java 代码处新建一个对象:
然后是 xml 配置:
gson 主要是安卓用的多
3、fastjsonfastjson 因为是引入外部的依赖,所以一定需要自己手动配置 httpMessageConverter 。
xml 配置:
java 代码没有变化。
如果有报错,那就是需要加上这个玩意:
上一篇博客中,有直接返回字符串的案例,如果是中文的情况下可能会有乱码,解决方式如下:
静态资源,比如:html、css、js、图片、mp3、mp4,该怎么放呢( jsp 是动态资源)?
静态资源默认情况下是访问不到的,因为拦截规则写了 / ,意思是拦截所有请求,包括静态资源。
解决办法有三种:
a、办法一 —— *.action
可以给所有请求加个 action,这样依赖静态资源就不会拦截了,但是弊端也很明显,所有接口都要改。
这里得是一个 / 。
就只需要改动这么点,就能访问到静态资源。
c、办法三——路径匹配(推荐) 三、sessionAttributes——把属性存入 session 中@sessionAttributes 这个注解能够把属性存入到 session 中,同样的,也有方法自动从 session 中取出来:
1、存属性 2、取属性
注意:如果 session 中没有对应的属性,是会报错的。
异常不能像平时那样贪方便直接各种 try…catch 处理,要有地方专门统一的处理,用的还是 AOP 那套。
依赖导入:
java代码:
xml 文件配置:
web xml 文件配置:
创建一个类,并实现 HandlerExceptionResolver:
jsp 页面:
然后效果:
然后效果:
这个方式的好处是一个类可以定义很多个处理方法。
4、方式三—— spring-servlet.xml 文件配置效果:



