今天演示EL表达式的时候发现自己jsp的基础实在是薄弱,在这个很简单的问题上迷惑了很久。
首先在看遇到的问题:
在浏览器地址输入,表示传入一个参数test,值为123
http://localhost:8888/Test/index.jsp?test=123
${test}
发现毫无结果,再使用requestScope尝试取出:
${requestScope.test}
发现还是毫无结果,感到非常诧异,遂干脆使用java脚本尝试取出。
<%request.getAttribute("test"); %>
之后发现,若使用已下代码向request作用域赋值,则用上面代码可以取出
<% request.setAttribute("test", "123"); %>
查询资料后发现,使用以下代码可以取出之前的请求参数: EL:
${param.test}
JAVA脚本:
<%=request.getParameter("test") %>
结论就是:${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获取的内容。
${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。