el表达式与jstl的用法
【摘要】 课上顺便整理了下java中的El表达式和jstl的用法,下面以举例的方式来阐述各个标签的作用:一、 使用el表达式将Map集合中的数据显示出来:先给Map集合里面放一些数据库,通过EL表达式显示在页面中:<% Map names = new HashMap(); names.put("one",1); names....
课上顺便整理了下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:索引
运行结果如图所示:
编辑
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)