课上顺便整理了下java中的El表达式和jstl的用法,下面以举例的方式来阐述各个标签的作用:
一、 使用el表达式将Map集合中的数据显示出来:
先给Map集合里面放一些数据库,通过EL表达式显示在页面中:
<% Map names = new HashMap(); names.put("one",1); names.put("three",3); names.put("two",2); //将集合放在request的作用域中 //request.setAttribute("names", names); %>
使用el表达式将Map集合中的数据显示出来:${names.one}
运行结果为:1
二、.el表达式的关系运算符:
1.==: ${2==3 }<br/> <!-- 输出false --> 2.>=: ${2>=1}<br/> <!-- 输出true --> 3.!=: ${2!=2 }<br/> <!-- 输出false --> 4.eq: ${"111" eq "111"}<br/> <!-- 输出true -->
三、el表达式的逻辑运算符:
1.&&: ${2==2 && 2==3 }<br/> <!-- 输出false --> 2.||: ${2==2 || 2==3 }<br/> <!-- 输出true --> 3.!或者not :${not (2==2) }<br/> <!-- 输出false -->
四、获取后台传的值:
先写一个注册的页面reg.jsp,代码如下:
<body> <h1>注册信息</h1> <form action="regServlet" method="post"> 用户名:<input type="text" name="uname"/><br/> 性别:<input type="text" name="usex"/><br/> 电话:<input type="text" name="uphone"/><br/> <input type="submit" value="提交"/> </form> </body>
可以看到该注册页面的表单提交到的是regServlet类,接下来看regServlet类的代码:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("utf-8"); //获取信息 String uname = request.getParameter("uname"); String usex = request.getParameter("usex"); String uphone = request.getParameter("uphone"); //将获取到的值放在实体类的对象里面 User user = new User(); user.setUname(uname); user.setUphone(uphone); user.setUsex(usex); //调用实现类的方法(这儿暂时不演示) //将对象放在request作用域里面 request.setAttribute("user",user); //转发到index.jsp页面 request.getRequestDispatcher("index.jsp") .forward(request, response); } //调用DoGet()方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
在index.jsp使用el表达式获取后台值的代码:
用户名:${user.uname }<br/> 性别:${user.usex }<br/> 电话:${user.uphone }<br/>
运行结果如图所示:
五、jstl的案例演示:
(使用jstl之前,需要在最上方将jstl的标签库导入到jsp页面中),代码是:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
jstl的标签用法如下:
- set的用法(设置作用域的值):
<c:set var="info" value="张s三" scope="session"/> <br/> (1)var:设置的变量名 (2)value:值 (3)scope:作用域 <br/> 获取c:set里面的值:${info}
运行结果如图所示:
2.out:(将结果输出显示):
<c:out value="${infos}" default="李四"/> <br/> value:需要显示的值,里面可以放一个el表达式<br/> default:如果el表达式里面未取到值,则显示defalut的值
运行结果如图所示:
3.remove:移除指定作用域里面的值:
<c:remove var="info"/> 将值移除掉的时,重新获取info的值:${info}
运行结果如图所示:
4.jstl的条件标签库:
<c:if test="${2==2}"> <h2>进来了if语句</h2> </c:if>
运行结果如图所示:
5.choose的用法,相当于java中的if-else:
<c:choose> <c:when test="${2==3 }"> <h2>2与3相等</h2> </c:when> <c:otherwise> <h2>2和3不相等</h2> </c:otherwise> </c:choose>
运行结果如图所示:
6.迭代标签库:
<% List<User> uList = new ArrayList<User>(); User u = new User(); u.setUid(1); u.setUname("张三"); u.setUsex("男"); u.setUphone("110"); User u1 = new User(); u1.setUid(2); u1.setUname("李四"); u1.setUsex("女"); u1.setUphone("230"); //给集合里面添加信息 uList.add(u); uList.add(u1); //将集合放在requset作用域里面 request.setAttribute("uList",uList); %> 显示集合里面的数据: <br/> <c:forEach items="${uList }" var="user" varStatus="sta"> 编号:${user.uid}<br/> 用户名:${user.uname}<br/> 性别:${user.usex}<br/> 电话:${user.uphone}<br/> <hr> </c:forEach> <br/> 1.var:变量名。<br/> 2.items:request作用域里面的键<br/> 3.varStatus:索引
运行结果如图所示:
猜你想买
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。
往期内容更精彩哦~