EL表达式获取参数的值并输出的问题
如图所示,在这里我们有两对level参数,他们是怎么对应的?理论上Parma应该是写到浏览器中的才对,可是浏览器中写level对??
正在回答
如果想要在最右边的JSP页面中获取param1的值。那么必须把param1放进request属性中
这个跟变量作用范围有关。
param1=getParamter("param2");//获取表单参数,把param2的值赋值给
param1 ${requestScope.param.param1}//输出param1的值
这是两段代码,第一段代码值的来源是表单,可以在浏览器通过?
param2=test可以赋值,第二段代码值得来源是request可以在浏览器通过param1=test赋值,然而param1和param2不是同一个东西,理论上可以通过?param2=test来赋值,实际却不行,但是如果不用EL表达式输出参数的值却可以。。
在这里param1在servlet里面直接输出,通过改变param2的值来改变param1的值,
但是在EL表达式中输出却不行,需要通过改变param1自身的值来改变,否则为空!!
这是为什么??请求转发的方式不会将参数丢失,却无法使用param2来传值。
1、第一段代码你是要写在哪里?写在Servlet还是写在JSP里?浏览器通过是什么意思?是指浏览器是否解析这段代码?还是指浏览器能否获得param2的值?还是指其他的意思?但是单从第一段代码的含义来说,如果放在JSP里,你没指定作用域,无法执行。如果放在Servlet里,你没指定对象,也无法执行,即便你指定了一个request对象来执行getParamter方法。那也只是代表在Servlet类中得到一个param1变量(值是param2对应的值)的意思,那浏览器通过又搞不懂是什么意思了。
2、你的表述依然不清晰,你想说的是不是通过在URL地址分别里添加“?param1=test”和“?param2=test”,提交到Servlet,再从Servlet转发到JSP页面。此时如果是用“?param1=test”,JSP页面可以显示param1的值。如果使用的是“?param2=test”,就无法显示结果“test”。是这个意思吗?如果是这个意思的话你要把你每个文件的代码贴出来才能进一步分析。
3、有好几个地方描述的模糊,从你说的内容来看,确定的地方是
通过URL添加参数“?param1=test”和“?param2=test”
那么可以重点描述一下这个问题中,param1和param2你是用什么方式把他们进行关联?在页面转换的过程中,param1和param2是怎么传递的(通过哪些语句)?
4、我又查了一查,param是jsp中的内置对象,如果在“Servlet中request.setAttribute("param",level)”,这样传递到JSP页面中是无法获取“level”这个值的。
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星