第九章SpringMVC 参数绑定,接受地址栏和表单传递的值,简单计算器

1.url地址栏参数传递与绑定

(1)体会通过url地址栏参数的传递原理

①格式:一般采用key/value格式,例如:ip:端口号?参数1名称:参数1值&参数2名称:参数2值

②将请求参数串中的 value 值获取到之后,再进行类型转换,然后将转换后的值赋值给Controlle r类中方法的形参,这个过程就是参数绑定。

 (2)练习通过url地址传递参数

 

 

 

总结:

①通过url传递的参数,只能到达第二个页面,没法保存,不能传到第三个页面。因为Uid的值发到UidController里面之后

System.out.println(Uid);会输出到控制台,不是jsp页面中

mav.addObject("aa", Uid)把Uid的值赋给aa了 ,所以urlid里面请求aa的值是有输出结果的,但是UidController并没有把Uid给urlid.jsp,所以urlid接收不到

②page指令里面一定要记得加上isELIGgnored=”false”,这样jsp页面才能使用EL语句

困难:

刚开始不管是老师给的案例还是书上的案例我都运行不出来...

老师给的案例只运行的出来url页面,后面的urlid将aa和uid的值显示出来这一步一直都是404,可能是因为配置文件web.xml和spring-servlet.xml文件不一样的原因,后来用how2j网站上的第四个练习里面的案例才做出来。

2.表单参数的传递和绑定

(1)How2j网站上的案例

①先运行,看到效果再学习

 注:因为addProject.jsp没有放在WEB-INF底下,所以没有被隐藏

 //地址栏里面的:addProject?name=coke&price=2.5

②实体类Product

 ③addProduct.jsp添加商品

 ④ProductController

作用:创建一个Product对象,将addProduct中的数据传到该实体类对象的参数中,并将创建好的实体化对象根据页面需求在showProduct.jsp中显示出来

 ⑤showProduct.jsp

作用:通过EL表达式,调用实体类中的参数使得输入的参数值显示出来

 ⑥测试

 

 (2)多值的传递和使用

①reg.jsp

 name中的值对应实体类Reg里的形参,并将value里面的值传给形参

②RegController.java(控制器)

Import pojo.Reg;

导入实体类Reg

@RequestMapping("/regsubmit")

public ModelAndView reg(Reg reg)

准备一个reg方法映射/regsubmit,对应Reg.jsp里面form表单的action的值

Reg.java

 因为要传多值,所以给Reg类又设置一个参数hobbys用来存放每一个选中的hobby,最后在reglist输出的时候直接输出hobbys

④reglist.jsp

注意:这个地方的page指令我没有照着老师的复制

原指令:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

这一行代码好像是因为和配置文件对不上所以没法用这句代码,会报错

我改成了:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8" isELIgnored="false"%>

就可以正常运行了。

后面去搜了原指令用不上的解决方法,如下:

 ⑤运行结果

3.计算器练习

①calculate.jsp

 ②CalculateController.java

困难:

这个页面让我纠结了很久,有一点不能理解的是为什么会把结果的计算放到控制器里面;

因为设置的单词长度有点长以及很多相关的单词,导致屡次打错界面运行不出来...后面重新检查了一遍就运行出来了;

刚开始不是很能理解,modelAndView.addObject("cal",cal);

后来看了一下之前的例子,mv.addObject("message", "Hello World!!!!");就很好理解了

③Calculate.java

 ④calresult.jsp

⑤测试运行

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值