當前位置:首頁 » 編程語言 » 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) :跳過了開始和結束標簽之間的代碼。

熱點內容
安卓手機什麼是雙卡 發布:2024-12-25 23:54:40 瀏覽:892
dnd伺服器ip地址 發布:2024-12-25 23:48:08 瀏覽:196
cad解壓沒有 發布:2024-12-25 23:48:03 瀏覽:14
超星做題腳本 發布:2024-12-25 23:35:14 瀏覽:908
打開加密pdf 發布:2024-12-25 23:24:57 瀏覽:742
動態sql查詢條件 發布:2024-12-25 23:24:56 瀏覽:303
qq群上傳速度 發布:2024-12-25 23:13:09 瀏覽:480
編程工程學 發布:2024-12-25 23:07:28 瀏覽:717
李小璐賈乃亮超級訪問 發布:2024-12-25 22:47:50 瀏覽:719
電信精品寬頻多ip路由如何配置 發布:2024-12-25 22:45:44 瀏覽:384