SpringMVC Controller函数参数问题(就是作为方法的参数,以类名小写开头可以在JSP页面中获得该变量的数据 )

版权声明: https://blog.csdn.net/qq_35370790/article/details/79393370

今天在看别人写的程序时发现了一个特殊的问题,就是在代码里并没有看到将对象写入域的代码,但在JSP页面上又能获得对象的数据。

说明:项目用的是:SpringMVC + Spring + MyBatis

方法名为如下

Page对象就是一个普通的java类如下:


就是这样但在,函数里并没有写入域的代码,但JSP页面能的到这个对象的数据,于是我做了一下的实验。

测试开始:

创建配置好工程后先创建一个Page对象,如下:


在写一个测试的Controller方法,如下:


然后是JSP, 如下:


运行结果如下:


这里也是的到这样的结果,在多次的测试后,我发现在JSP页面把方法的参数类的名称小写就可已获得变量得值,于是我改下的测试方法,如下:


JSP如下:


运行结果,如下:


从上面可以结果和JSP可以看出存在request域里的变量名是参数类名的首字母小写的名字,与变量名无关

再来一波测试

方法如下:


JSP如下:


运行结果,如下:


从上面的测试可已看出当参数类型有多个并有相同的类型时,在JSP页面上获取到的是最有一次赋值变量的值。

注意:参数都是存在request域里,我写的参数名是类型的首字母小写,但其实这个变量名可以为任何名字,但在JSP页面取得时候必须写成你参数类型的类名(首字母小写(⊙o⊙)哦)。

总结:

从上面可以看出(经过多次测试(⊙o⊙)哦!上面只是一个简单的过程)当SpringMVC的Controller方法的参数类(类型不限),你向这个变量写数据后,会存入request域里,如果这个方法有多个相同的参数类型,那么域里存的是最有一次修改这个 类型的变量的值,在JSP页面可以通过类名首字母小写来获得数据。


猜你喜欢

转载自blog.csdn.net/qq_35370790/article/details/79393370