2013-12-16 105 views
0

我正在嘗試使用帶變量的自定義標籤。
爲例如)
<c:forEach var="test" items="itemstest">
${test}
</c:forEach>
帶變量的自定義標籤

在上面的代碼我能夠訪問<c:forEach>標籤內的test值。
我需要創建一個具有類似功能的自定義標籤。
我已經從oracle docs http://docs.oracle.com/javaee/5/tutorial/doc/bnamu.html獲得了標題Declaring Tag Variables for Tag Handlers的信息。
任何人都可以幫助我實現相同的例子。

回答

0

嗨,我已經通過以下方式

class: test.java  
    public void doTag() throws JspException, IOException { 
    getJspContext().getOut().flush(); 
    //any method or operation 
    super.doTag(); 
    getJspContext().setAttribute(variable, "Hello"); 
} 

創建變量

tld file: 
<tag> 
    <name>test</name> 
    <tag-class>com.org.test</tag-class> 
    <body-content>empty</body-content> 
    <attribute> 
     <name>inputValue</name> 
     <required>true</required> 
     <rtexprvalue>true</rtexprvalue> 
    </attribute> 
    <attribute> 
     <name>variable</name> 
     <required>true</required> 
     <rtexprvalue>true</rtexprvalue> 
    </attribute> 
</tag> 

jsp file: 
     <%@ taglib uri="/WEB-INF/tld/tldfilename.tld" prefix="tag" %> 
     <tag:test inputValue="hello" variable="testValue"/> 
     ${testValue} 
0

對於這麼簡單的東西的getter setter方法解決了這個問題,你可能會更好使用標記文件,這使得它易於使用正常jsp語法的一些小增加來創建標籤庫(並且是標準的一部分)

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html

使用屬性聲明做

A「與變量標籤」,JSP代碼非常簡單:

<%@tag pageEncoding="utf-8" %> 
<%-- dont forget to add declaration for JSTL here --> 
<%@attribute name="test" type="java.lang.String" required="true" %> 
<c:forEach var="test" items="itemstest"> 

    ${test} 

</c:forEach> 

參見whre把鏈接文件並命名文件,使他們可以訪問在你自己的JSP文件。