关于EL表达式取值的常见问题

在浏览器地址输入,表示传入一个参数test,值为123

http://localhost:8080/Test/index.jsp?test=123


在index.jsp中尝试使用EL表达式取出,代码如下:

<body> ${test} </body>

发现毫无结果,再使用requestScope尝试取出:

<body> ${requestScope.test} </body>

发现还是毫无结果,感到非常诧异,遂干脆使用java脚本尝试取出。

<body> <%request.getAttribute("test"); %> </body>


依然无解。

之后发现,若使用已下代码向request作用域赋值,则用上面代码可以取出

<% request.setAttribute("test", "123"); %>

 
查询资料后发现,使用以下代码可以取出之前的请求参数:
EL:

<body> ${param.test} </body>

JAVA脚本:

<body> <%=request.getParameter("test") %> </body>

结论就是:${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获取的内容。

    ${requestScope.name} 等价于${name}等价于request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。

 

你可能感兴趣的:(关于EL表达式取值的常见问题)