当前位置:首页 » 编程语言 » java定义标签

java定义标签

发布时间: 2022-09-28 12:18:31

‘壹’ 如何在javaWeb程序中使用自定义标签

这是自定义JSP标签的配置文件,在JavaWeb程序中使用的方法有2种: 1)在web.xml中统一配置 标签配置文件的物理地址 标签配置文件的调用别名 2)JSP中引入标签库

‘贰’ java自定义标签out

JspWriter out = pageContext.getOut();

这个题目挺白痴的,没什么意思,就是要去翻源码和API文档。

PageContext类有一个方法是

public abstract JspWriter getOut()

我们自定义标签的时候需要用out来输出。

‘叁’ java 自定义标签中,xx.tld里面的uri写什么,还有jsp中的uri还有prefix写什么。下面是错误提示和我的tld

在JSP中使用标签是很平常的事情,在制作自定义标签时,通常都需要写tld文件来定义标签的各种属性,对应的java类,前缀等等。标签与tld文件紧紧相连,所以需要引入c.tld文件。
首先是在头部申明taglib, uri必须是web.xml定义的,或者是原始tld文件定义的。
<%@ taglib prefix="c" uri="java.sun.com/jstl/core" %>
<%@ taglib prefix="ex" uri="/jstl-examples-taglib" %>

然后便可以在jsp页面中通过prefix使用相应的标签
<c:import varReader="reader" url="${filepath}">
<ex:escapeHtml reader="${reader}"/>
</c:import>
Tld文件路径定义方式:
在web.xml中定义
<taglib>
<taglib-uri>/jstl-examples-taglib</taglib-uri>
<taglib-location>/WEB-INF/lib/jstl-examples.tld</taglib-location>
</taglib>
如果这样定义的话,映射关系如下:
/jstl-examples-taglibßà{“/WEB-INF/lib/jstl-examples.tld”,””} // taglib_tld_location[0]就足以表示tld路径,因此taglib_tld_location[1]为空。

‘肆’ 如何在JavaWeb程序中使用自定义标签

tld定义格式

[java] view plain print?
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>
<!--定义标签版本库-->
<tlib-version>1.0</tlib-version>
<!--定义jsp版本库-->
<jsp-version>1.2</jsp-version>
<short-name>Cms Tag</short-name>
<description><!--标签描述--->
A simple appbase tag library
</description>
<tag>

<name>page</name><!--tag的名字-->
<tag-class>com.cms.common.tag.PageTag</tag-class><!--tag对应的java类的名字-->
<body-content>empty</body-content>

<!--关于body-content 有三个值可选;empty:标签体必须为空;jsp:标签由其他jsp元素组成比如标签中含有<%=attributeName%>的jsp元素,那么此时body-content的值就是实际attributeName传入的值;tagdependent:有标签解释不带jsp转换(这个深入的含义不太了解)-->

<attribute><!---这里表示的是这个tag的一个参数-->
<name>cmsform</name><!--这个参数的名字-->
<required>true</required><!--是否是必填选项-->
<rtexprvalue>true</rtexprvalue><!--这个参数的值是否可以写入,换句话说 就是这个参数是否可以动态赋值-->
</attribute>

</tag>

</taglib>

定义Tag对应类
此类必须重写doStartTag以及doEndTag方法
[java] view plain print?
/**
*
*/
package com.cms.common.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

/**
* @author louisliao
*
*/
public class DemoViewTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String cmsform = "";
public String getCmsForm() {
return cmsform ;
}
public void setCmsForm(String cmsform ) {
this.cmsform = cmsform ;
}
/**
*
*/
public DemoViewTag() {
// TODO Auto-generated constructor stub
}
public int doStartTag()
{
return super.SKIP_BODY;
}
public int doEndTag() throws JspException
{
JspWriter writer=pageContext.getOut();
try {
writer.print("这是我的标签示例<br/>"+"cmsform :"+this.cmsform);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return super.EVAL_PAGE;
}
}

在web.xml中加入taglib对应文件配置
如:
[java] view plain print?
<taglib>
<taglib-uri>http://mytag.sf.net</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>

这样就表示了http://mytag.sf.net对应WEB-INF/mytag.tld文件

在Jsp页面中引用
如:
<%@ taglib uri="http://mytag.sf.net" prefix="myTag"%>

在Jsp页面中使用
<myTag:exname1><myTag:exname1>

示例:
定义myTag.tld标签文件
[java] view plain print?
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>MyJSPTag Library</shortname>
<uri>http://mytag.sf.net</uri>
<info>我的示例标签库</info>

<tag>
<name>demo.Viewport</name>
<tagclass>com.myapp.web.tag.DemoViewTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>demo.Viewport标签</info>
<attribute>
<name>northTitle</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>westTitle</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

定义标签类

[java] view plain print?
/**
*
*/
package com.myapp.web.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

/**
* @author louisliao
*
*/
public class DemoViewTag extends TagSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String northTitle = "";
private String westTitle = "";

public String getNorthTitle() {
return northTitle;
}
public void setNorthTitle(String northTitle) {
this.northTitle = northTitle;
}
public String getWestTitle() {
return westTitle;
}
public void setWestTitle(String westTitle) {
this.westTitle = westTitle;
}
/**
*
*/
public DemoViewTag() {
// TODO Auto-generated constructor stub
}
public int doStartTag()
{
return super.SKIP_BODY;
}
public int doEndTag() throws JspException
{
JspWriter writer=pageContext.getOut();
try {
writer.print("这是我的标签示例<br/>westTitle:"+this.westTitle+"<br/>northTitle:"+this.northTitle);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return super.EVAL_PAGE;
}
}

web.xml添加配置

[java] view plain print?
<taglib>
<taglib-uri>http://mytag.sf.net</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>

测试页面

[java] view plain print?
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://mytag.sf.net" prefix="myTag"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'tagtldDemo.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
This is my JSP page. <br>
<myTag:demo.Viewport northTitle="南" westTitle="西"></myTag:demo.Viewport>
</body>
</html>

‘伍’ java的标签怎么定义为什么我的编译通不过我用的是1.6的版本!可以参照这个简单的程序讲下!

你少了括号,你的break语句并不在循环内部,所以出错。
你的循环到System.out这句就停止了。

‘陆’ java怎么实现像招聘网站一样输入自定义标签

一般我们说自定义标签是指JSP自定义标签。自定义标签在功能上逻辑上与javaBean 类似,都封装Java 代码。自定义标签是可重用的组件代码,并且允许开发人员为复杂的操作提供逻辑名称。 JSP开发人员使用标签库创建标签.标签库是按照功能或实现进行分...

‘柒’ (java)关于自定义标签的问题

标签是使用在JSP上的,它是实现某些业务逻辑的,它只能把处理的结果展现出来。你想更改数据库的数据这必须要通过后台代码来实现。标签最终结果是展现在客户端的。对于你这样的提问实在是太尴尬了。我认为你应该多看看标签的相关文章。感觉你没有理解标签的作用。

如果真的可以做到,那我会虚心学习。呵呵~~~我会关注此问题的!

‘捌’ 关于Java中自定义标签

TagSupport举例:
public class LangHuaTag extends TagSupport {
private long startTime;
private long endTime;

public int doStartTag() throws JspException {
startTime = System.currentTimeMillis();
//表示定制标记里面有所包括的JSP页面
return TagSupport.EVAL_BODY_INCLUDE;
}
public int doEndTag() throws JspException {
endTime = System.currentTimeMillis();
long elapsed = endTime - startTime;
try {
JspWriter out = pageContext.getOut();
out.println("runtime is "+ elapsed);
} catch (IOException e) {
e.printStackTrace();
}
//表示JSP页面继续运行
return TagSupport.EVAL_PAGE;
}

}

Html代码
<%@ taglib prefix="util" uri="http://langhua.com/taglib/util"%>

<util:timer></util:timer>
<util:loop times="3">
<util:date pattern="yyyy-MM-dd" /><br/>
</util:loop>

当然,自定义标签的xml描述文件自己写,推荐你看看孙卫琴的《javaweb与tomcat。。》大概书名是如此。。呵呵

‘玖’ java 自定义标签tld 继承service实现层操作数据库怎么做

1.java自定义标签 自定义标签制作步骤: 1.扩展TagSupport 2.标签所对应的tld文件配置 3.在JSP页面引用tld配置文件并使用标签 标签制作常用方法说明: doStartTag()和doEndTag()返回值处理: SKIP_BODY (0) :跳过了开始和结束标签之间的代码。

热点内容
学C语言书 发布:2024-12-26 08:46:46 浏览:84
win7共享文件访问权限 发布:2024-12-26 08:33:22 浏览:147
安卓如何下载play商店app 发布:2024-12-26 08:32:31 浏览:498
我的世界网易服务器卡崩进不去 发布:2024-12-26 08:20:48 浏览:738
sqlserver导出xml 发布:2024-12-26 08:06:26 浏览:289
wifi无访问权限 发布:2024-12-26 08:05:33 浏览:674
win10怎么输入无线密码 发布:2024-12-26 08:05:33 浏览:676
如何查看科目二预约密码 发布:2024-12-26 08:02:45 浏览:260
鱼的生理盐水怎么配置 发布:2024-12-26 07:56:59 浏览:906
问道手游有脚本吗 发布:2024-12-26 07:53:50 浏览:842