EL表达式的基础篇【第一次写博客,请多多指教批评,如有指教批评,请留言,后续还会继续更新】
EL表达式的简介:EL的英文全称是Expression Language,是一种简单JSP表达式语言,提供了简化表达式的操作方法,基于可用的命名空间(pageContext/request/session/application)、嵌套属性和对集合、操作符(算术型/关系型/逻辑型)的访问符、映射到Java类中静态方法的可扩展函数以及一组隐式对象。
EL表达式的语法结构:${expression},用$定界,内容包括在{}中。
EL表达式的作用:EL表达式提供了在JSP脚本编制元素范围外使用运行时表达式的功能,(脚本编制元素是指嵌套在JSP页面的Java代码)。
1.对字符串常量的输出-${"您好"}
2.对变量的输出:${str}
3.对计算结果的输出:${3+2},同样也支持对逻辑运算结果的输出
4.对对象属性的输出:${user.userName}
5.对集合某一项的输出:${list[1]}
6.对键值对的输出:${map["key"]}
- 与范围有关的隐式对象:pageScope、requestScope、sessionScope、applicationScope。
这四个隐式对象用来取作用域范围中的属性值,即pageContext,request,session,application中储存的值,即
例如:request.setAttribute("userName",userName);
其中变量userName中的值,在JSP页面便可以使用${requestScope.userName}来取到值,直接在JSP页面输出。
如果不指定取值的范围(${userName}),它会依序从page,request、session、application范围中查找,找到
便返回userName的值,找不到便返回null。
2. 与输入有关的隐式对象:param,paramValues
这两个隐式对象用来获取请求参数的值:
2-1.通过name属性获取表单中提交的值。
例如:<form action="user.jsp" method="post">
用户名:<input type="text" name="userName">
<input type="submit" value="提交">
</form>
要在user.jsp页面获取userName的值,便可以使用${param.userName}获取,其中paramValues用
获取name值相同的表单元素的值,比如CheckBox控件的值,返回的一个集合,可以通过索引下标
来获取值${paramValues.habbit[index]}
2-2.可用于表单回显【当表单提交后文本框依旧显示所填写的值】
例如:<form action="user.jsp" method="post">
用户名:<input type="text" name="userName" values="${param.userName}">
用户名:<input type="text" name="userName" values=" <%request.getParamter("userName")==null?"":request.getParamter("userName")%>">
<input type="submit" value="提交">
</form>
此时使用EL表达式比使用Java脚本加三元运算符简单
2-3.获取a标签的?传值。
<a href="user.jsp?text=add">添加</a>,在user.jsp页面便可以使用${param.text}取到值:add