一、url地址栏参数传递与绑定
运行结果为:
由于在UidController.java中有System.out.println(Uid);语句,所以在控制台会显示8
原因理解:通过url传递的参数,只能到第二个页面,没法保存,所以不能传递到第三个页面。在本例子中,第一个页面是url.jsp,点击超链接会根据路径到达UidController.java(第二个页面),并传递参数Uid=8,在此页面中Uid值为8,所以输入System.out.println(Uid);,会在控制台显示8;在UidController中将Uid的值8放入模型数据aa中,并加入到ModelAndView,跳转到urlid.jsp页面(即第三个页面),此时再在第三个页面显示aa与Uid的值,aa即为8,而Uid的值没法传到第三个页面,为空。
二、表单参数的传递与绑定
1、练习how2j网站上的接受表单数据
教程:Spring MVC系列教材 (四)- 接受表单数据 (how2j.cn)
其中注意:
(1)在addProduct.jsp产品名称与产品价格input中的name分别为name与price,与Product类中名字对应;并在ProductController中为add方法准备一个Product参数,这样提交的name与price会自动注入到参数 product里,并且参数product会默认被当做值加入到ModelAndView 中。
(2)教材中说将addProduct.jsp放在web目录下,而不是WEB-INF下。于是我尝试将其移到WEB-INF下,运行后出现了404错误,所以这里切勿放错目录。(后续练习中注册的jsp页面也是在web目录下)
运行结果当我输入英文,可以正常显示;但输入中文,就会出现乱码的情况
上网查找(java)三种方案解决SpringMVC中表单提交时中文乱码的问题_springboot formsubmit 表单乱码_xiaoniu667的博客-优快云博客
按照博客中的三种方式还是未解决乱码问题,但是我还是按照这个博客中的第二种方式在web.xml中添加了如下配置:
!!!但是当我练习下面的注册案例后,我发现在注册时提交中文,结果显示出来并未出现乱码情况,于是我想着应该不是过滤器或配置的原因,上面博客中的三种方式是可行的。通过对比这个
addProduct.jsp与register.jsp,只要加上method="post"就正常显示中文字符。
但是同时在web.xml记得配置过滤器的。
2、练习注册案例(表单的传递的值有单值和多值的情况)
本案例与上个表单例子类似,在register.jsp提交数据后,进入RegisterController,数据会自动注入到参数reg,reg默认被当做值加入到ModelAndView 中,最后跳转到regilist页面显示用户提交的数据。
其中多值情况主要在注册页面html与register.java有区别
问题:显示页面无法显示提交的数据
原因:
这里面应该是类的名称,而不是对象的名称。一开始正是因为写的对象名reg而无法显示出来
三、简单的计算机
明天再进行练习