jstl的几个标签

还是用代码说明:

jstlAction.java:

package com.keith.jstl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.keith.taglibs.Group;
import com.keith.taglibs.User;

public class JstlAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// 字符串
		request.setAttribute("hello", "hello JSTL");

		// HTML文本
		request.setAttribute("keith", "<font color='red'>keith</font>");

		// 测试条件语句
		request.setAttribute("v1", 1);
		request.setAttribute("v2", 2);
		request.setAttribute("v3", new ArrayList());
		request.setAttribute("v4", "keith V4");

		// 对象数组
		Group group = new Group();
		group.setGroupName("keith");

		// 测试foreach
		List userList = new ArrayList();
		for (int i = 0; i < 10; i++) {
			User u = new User();
			u.setName("USER_" + i);
			u.setAge(10 + i);
			u.setGroup(group);
			userList.add(u);
		}
		request.setAttribute("userList", userList);

		// 测试循环输出map
		Map map = new HashMap();
		map.put("k1","v1");
		map.put("k2","v2");
		request.setAttribute("mapValue", map);
		
		//测试c:forTokens
		request.setAttribute("strTokens","1,2,3,4,5,6,7,8,9");
		return mapping.findForward("jstl");
	}

}

 struts-config.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
	
	<action-mappings>
		<action path="/jstl"
				type="com.keith.jstl.JstlAction">
			<forward name="jstl" path="/jstl.jsp"></forward>
		</action>
		
	</action-mappings>
	<message-resources parameter="MessageResources" />
</struts-config>

 jstl.jsp:首先指定标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

 <body> </body>里:

	<body> 
		c:out测试 
		<hr color="orange">
		hello(JSTL_default):<c:out value="${hello}" /><br>
		hello(EL_default):${hello }<br>
		default(123):<c:out value="${abc}" default="123" /><br><!-- 找不到abc的值,这时的default就有了作用 -->
		keith(c:out输出):<c:out value="${keith}" /><br>
		keith(escapeXml="flase"):<c:out value="${keith}" escapeXml="flase"/><br>
		keith(escapeXml="true"):<c:out value="${keith}" escapeXml="true"/><br>
		keith(EL输出):${keith}
		
		<hr>
		c:set/remove测试
		<hr color="orange">
		<c:set var="set1" value="keithSET" /><br>
		set1:${set1 }<br>
		<c:remove var="set1"/><br>
		set1:${set1 }<br>
		<hr>
		
		c:if:条件控制
		<hr color="orange">
		<c:if test="${v1 lt v2}" var = "v">
			v1小于v2<br/>
			${v }<br/>
		</c:if>
		<c:if test="${empty v3}">
			v3为空<br/>			
		</c:if>
		<c:if test="${empty v4}">
			v4为空<br/>			
		</c:if>
		<hr>
		
		测试C:choose,c:when,c:otherwise
		<hr color="orange">
		<c:choose>
			<c:when test="v1 lt v2">
				v1小于v2<br/>				
			</c:when>
			<c:otherwise>
				v1不小于v2<br/>
			</c:otherwise>
		</c:choose>
		<c:choose>
			<c:when test="${empty v4}">
				v4为空<br/>
			</c:when>
			<c:otherwise>
				v4不为空<br/>				
			</c:otherwise>
		</c:choose>
		<hr>
		<h4>测试c:forEach</h4>
		<table >
			<tr>
				<td>姓名</td>
				<td>年龄</td>
				<td>组</td>
			</tr>
			<c:choose>
				<c:when test="${empty userList}">
					<tr>
						<td colspan="3">没有符合条件的数据!</td>
					</tr>
				</c:when>
				<c:otherwise>
					<c:forEach items="${userList}" var="user" varStatus="vs">
						<c:choose>
							<c:when test="${vs.count % 2 == 0 }">
								<tr bgcolor="orange">
							</c:when>
							<c:otherwise>
								<tr>		
							</c:otherwise>
						</c:choose>
								<td>
									<c:out value="${user.name}"></c:out>
								</td>
								<td>
									<c:out value="${user.age}"></c:out>
								</td>
								<td>
									<c:out value="${user.group.groupName}"></c:out>
								</td>
								
					</c:forEach>
				</c:otherwise>
			</c:choose>
		</table>
		<hr>
		<h3>测试循环控制标签c:forEach,begin,end,step</h3>
		<table>
			<tr>
				<td>姓名</td>
				<td>年龄</td>
				<td>组名</td>
			</tr>
			<c:choose>
				<c:when test="${empty userList}">
					<tr>
						<td colspan="3">没又符合的数据</td>
					</tr>
				</c:when>
				
				<c:otherwise>
					<c:forEach items="${userList}" var="user" begin="2" end="5" step="2">
						<tr>
							<td>${user.name }</td>
							<td>${user.age }</td>
							<td>${user.group.groupName }</td>
						</tr>						
					</c:forEach>
				</c:otherwise>
			</c:choose>
		</table>
		<p></p>
		<hr>
		<h4>测试循环控制标签 c:foreach 普通循环</h4>
		<c:forEach begin="1" end="5">
			a<br/>
		</c:forEach><br>
		<h4>测试循环控制标签c:forEach,输出map</h4>
		<c:forEach items="${mapValue}" var="v">
			${v.key } = ${v.value }<br/>					
		</c:forEach>
		
		<h4>测试循环控制标签c:forTokens,用于有符号的表达式</h4>
		<c:forTokens items="${strTokens}" delims="," var="v">
			${v }<br/>
		</c:forTokens>
		<h4>测试c:catch</h4>
		<%
			try{
				Integer.parseInt("keith");
			}catch(Exception e){
				out.println(e.getMessage());
			}
		 %>
		 <p></p>
		 <c:catch var="exinfo"><!--  获取异常变量 -->
		 	<%
		 		Integer.parseInt("keith");
		 	 %>
		 </c:catch>
		 ${exinfo }<br/><!-- 输出异常变量 -->
		<li>测试:redirect:直接跳转;context项目名称;url跳转的页面</li><br>
		<c:redirect context="/struts_test" url="/index.jsp"/>
	</body>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值