(狂神)SpringMVC笔记--------03

RequestMapping说明

我们在上一个子项目中添加一个Controller:

我们之前写过的Controller:

运行:

 

 

 所以如果底层已经被写好了,我们只需要写Controller层就可以了。

我们改变一下文件所在的路径:

改动前:

 改动后:

我们发现,idea自动会把我们代码中的路径进行改变。

RestFull风格 

我们原来的方式:

运行:

 我们现在使用RestFull风格:

运行:

我们发现结果是一样的只是在前端页面传入值的风格改变了

 当然我们可以任意更改传入的参数的数据类型:

运行:

 

 

 我们除了get post 我们还有delete 方法,我们刚才所使用的是Get的方式。

我们还有更简单的写法:

如果我们用POST方法:

会报405错误,我们可以限定用什么方法去提交

我们使用这种风格,会去自动去寻找对应风格的方法去执行。

在RestFull中,同一个地址栏,我们可以通过不同的方法进行操作:

我们可以直接在浏览器地址栏中使用Get方法,当然我们也可以在前端页面的表单中使用Post方法:

它会自动找到我们Controller中的post方法:

运行:

 

补:

我们也可以用这种方式使用Get方法。

 我们也可以用path代替name:

 RestFull风格的优点:

简洁 高效 安全

重定向和转发

我们先写一段代码:

运行:

 我们发现我们成功获取到sessionid. 这说明在springmvc中我们仍然可以使用HttpServletRequest和HttpServletResponse类中的属性和方法。

如果我们使用请求转发或者重定向的方式的话,我们可以不用配置spring.xml中的视图解析器。

我们先把视图解析器给注释掉:

 这样我们在sping.xml中只配置了一个扫描包的代码。

我们使用第一种转发方式:

 运行:

我们这种转发相当于直接声明了转发地址,完全代替了视图解析器。

转发方式二:

 我们也可以使用forward去代替/

 重定向:

我们看到了,重定向可以改变地址。

我们要是用这种转发和重定向的方法就不要写视图解析器了,不然会拼接处一个看起来很奇怪的地址路径。 

接收请求参数及数据回显

实体类:

 在子项目的pom.xml中配置lombok我们就可以用上面的注解了:

 Controller:

跳转到的jsp页面:

我们没有使用请求转发和重定向方法,我们需要在springmvc中配置视图解析器

 

 运行:

我们发现当浏览器中传入参数的值时,可以用Model对象自动获取到前端传来的参数值,不需要用之前的servlet中的request.getParameter方法了.

 注意前端网址上的参数的名称应该和Controller中的String后面的参数名称相同

 我们发现参数名称不一样就获取不到值了。

 如果我们一定要传入的参数名称不一致可以使用@RequestParam()的方法:

我们想要传入什么样的参数在,RequestParam()里传入就可。

 这种写法有一个好处就是,我们可以一眼看出哪些属性是类对象,哪些属性是从前端获取到的。

这两种获取参数的方式是有区别的,如果我们不加注解,那么我们参数名对应不上,是返回空页面,输出null值。但是我们如果使用注解的方式,参数名称不一致:

会直接报错。

 第二种情况,如果我们接受的参数是对象呢?

我们不需要把每一个属性都传入,只需要直接传入对象即可。

运行:

 如果我们传入的参数的名字不一致:

 就取得空值。

只要提交的表单域和对象的属性名一致,参数使用对象即可

如果使用对象的话,前端传递的参数名和对象名必须一致,否则就是null.

数据显示到前端

有三种方式:

第一种通过ModelAndView 之前用过

第二种通过Model(用的多,推荐使用)

第三种通过ModelMap

对比:就对于新手而言来说使用区别就是:

Model:只有寥寥几个方法只适合用于数据存储,简化了新手对于Model对象的操作和理解。

ModelMap:继承了LinkedMap,除了实现了自身的一些方法,同时继承LinkedMap的方法和特性。

ModelAndView:可以在存储数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。(几乎用不到)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值