您的位置:首页 > Web前端 > JavaScript

jsp程序设计-Tag文件与Tag标记用法详解

2015-12-16 21:36 661 查看
新建tag文件

注:tag文件一般被放至/WEB-INF/tags目录下

Jsp页面中引用tag文件(声明标记库)

jsp页面头部:

<%@ taglib prefix="前缀" tagdir="自定义标记库的位置(一般为/WEB-INF/tags)"%>

//prefix属性为前缀


jsp页面中使用tag标签(jsp页面像tag文件中传值):

<前缀:tag文件名 对象1名字="对象1的引用 对象2名字="对象2的引用" />


编写tag文件

Tag文件接收jsp页面传值:

<%@ attribute name="对象1名字" required="true"%>

<%@ attribute name="对象2名字" required="true"%>


将tag文件中对象返回给调用该tag文件的jsp页面(使用variable指令) Tag文件中

a.声明variable指令

<%@ variable name-given ="对象名字" scope="有效范围"%> //variable指令


scope取值(指明jsp页面使用variable指令中给出的对象的有效范围):

AT_BEGIN:jsp页面一旦开始使用tag标记,就可以使用

NESTED:jsp页面只可以在tag标记的标记体使用。

AT_END:jsp页面只可以在tag标记结束后使用

b. 将对象返回给调用该tag文件的jsp页面

jspContext.setAttribute("对象的名",对象的引用);//发回jsp页面


附代码(四则运算):

InputNumber.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>四则运算</title>
</head>
<body bgcolor=yellow>
<font size="5">
输入运算数,选择运算符号:<br>
<form action="" method="post">
<input type="text" name="no1" size=6>  
<select name="operator">
<option value="+">+
<option value="-">-
<option value="*">*
<option value="/">/
</select>  
<input type="text" name="no2" size=6>
<input type="submit" value="提交你的答案" name="submit">
</form>
<%String a=request.getParameter("no1");
String b=request.getParameter("no2");
String operator=request.getParameter("operator");
if(a==null||b==null){
a="";
b="";
}
if(a.length()>0&&b.length()>0){
%><computer:computer numberA="<%=a%>" numberB="<%=b%>" operator="<%=operator%>"/>
计算结果:<%=a %><%=operator %><%=b %>=<%=result %>
<%
}
%>
</font>
</body>
</html>


Computer.tag

<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="numberA" required="true"%>
<%@ attribute name="numberB" required="true"%>
<%@ attribute name="operator" required="true"%>
<%@ variable name-given ="result" scope="AT_END"%>
<%try{
double a=Double.parseDouble(numberA);
double b=Double.parseDouble(numberB);
double r=0;
if(operator.equals("+"))r=a+b;
else if(operator.equals("-"))r=a-b;
else if(operator.equals("*"))r=a*b;
else if(operator.equals("/"))r=a/b;
jspContext.setAttribute("result",String.valueOf(r));
}catch(Exception e){
jspContext.setAttribute("result","发生异常:"+e);
} %>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp tag 标签