(1)从某个域中取数据,取之前必须要保证数据已经存进域里
四大域:(pageContext仅jsp能使用,request,session,application)
(2)将取出的数据转换成字符串(不是字符串调用toString转成字符串)
(3)将字符串输出到浏览器
如果四个域中有同名数据,那默认从顺序:(从小到大)
pageContext(仅jsp能使用)
request
session
application
${key}
key后可跟.可跟[ ],一般跟. ,只有当key对象的属性名是abc.efg这种的,得用[ ](属性名abc.efg纯纯自找麻烦)
<%=request.getAttribute("username") %>
等价于:
${username}
假设有java代码:
//创建对象
User user1 = new User();
user.setName("zhangsan");
user.setId("001");
//对象存到域中
request.setAttribute("u1",user1);
则:
<%=u1.getName()%>
等价于:
${u1.name}使用这个语法的前提是User类中有getName()方法。
等价于:
${u1["name"]}中括号要加双引号
<%=u1.getObject().getName()%>
等价于:
${u1.object.name}使用这个语法的前提是User类中有getObject()方法,Object类中有getName()方法。
假设有java代码:
Map<String,String> map = new Map();
Map.put("username","zhangsan");
Map.put("password","123");
request.serAttribute("a",map);
则:
${a.username}//zhangsan
${a.password}//123
假设有java代码:
String[] s = {"abc","def"};
request.setAttribute("a",s);
则:
${a[0]}//abc
$(a[1])//def
${pageScope.data}
${requestScope.data}
${sessionScope.data}
${applicationScope.data}
<%= request.getContextPath()%>
等同于:
${pagecontext.request.contextPath}
浏览器URL:http://localhost:8080/xmm/index.jsp?username=lisi
<%=request.getParameter("username")%>//lisi
等同于:
${param.username}
浏览器URL:http://localhost:8080/xmm/index.jsp?aihao=chouyan&aihao=hejiu
<%=request.getParameterValues("爱好")%>//得到一个数组
等同于:
${paramValues.aihao}
获取数组中元素:
${paramValues.aihao[0]}
${paramValues.aihao[1]}
<%=application.getInitParameter("pagesize")%>
等同于:
${initParam.pagesize}
${10+"20"}//30,EL中不会进行字符串拼接,加号两边不是数字转数字,转不了报NumberFormatException错误。