2008-11-18 7 views
1

Je reçois le message "Cet attribut ne prend pas en charge les valeurs de temps de requête". lors de la compilation de mon implémentation de balise jsp personnalisée.JSPTag: Exception - Cet attribut ne prend pas en charge les valeurs de temps de demande

Mon fichier TLD

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!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>My Extension</shortname> 
    <info>Customization Extensions</info> 
    <tag> 
    <name>requireDisplay</name> 
    <tagclass>com.view.LinksTag</tagclass> 
    <teiclass>com.view.LinksTagExtraInfo</teiclass> 
    <bodycontent>JSP</bodycontent> 
    <info> My Tags Exercise 
    </info> 
    <attribute> 
     <name>viewID</name> 
     <required>true</required> 
     <rtexpvalue>true</rtexpvalue> 
    </attribute> 
    <attribute> 
     <name>viewType</name> 
     <required>true</required> 
     <rtexpvalue>true</rtexpvalue> 
    </attribute> 
</tag> 
</taglib> 

Ma JSP Tag mise en œuvre a la méthode suivante

/** 
* doStartTag is called by the JSP container when the tag is encountered 
*/ 
public int doStartTag() throws JspException { 
    try { 
     JspWriter out = pageContext.getOut(); 
     out.println(getContent()); 
    } catch (Exception ex) { 
     throw new ElmsUncheckedException(ex); 
    } 
    // Must return SKIP_PAGE because we are done with the content. 
    return SKIP_BODY; 
} 

/** 
* getContent is called by the startTag to print the Request View button 
* contents. 
*/ 
private String getContent() { 
    String linkURL = ViewConstants.BASE_URL; 
    StringBuffer sbuffer = new StringBuffer(); 
    sbuffer.append("<form name=\"postView\" action=\"" + linkURL + "\" target=\"_blank\" method=\"POST\">\n"); 
    sbuffer.append("<input type=\"hidden\" name=\"ID\" value=\"" + viewID + "\" />\n"); 
    sbuffer.append("<input type=\"hidden\" name=\"Type\" value=\"" + viewType + "\" />\n"); 
    sbuffer.append("<tr>\n"); 
    sbuffer.append("<td class=\"BodyBG\">\n"); 
    sbuffer 
      .append("<button type=\"submit\" class=\"GridButton\" name=\"dispatch\" value=\"postView\">postView</button> \n"); 
    sbuffer.append("</td><td width=\"1\"></td>\n"); 
    sbuffer.append("</tr>\n"); 
    sbuffer.append("</form>\n"); 
    return sbuffer.toString(); 
} 

public int doEndTag() throws JspException { 
    resetVariables(); 
    return EVAL_PAGE; 
} 

mon jsp les éléments suivants sont

<%@ taglib uri="/WEB-INF/view.tld" prefix="cmd" %> 

..... 

<cmd:requireDisplay viewID="<%=vox.getViewID()%>" viewType="<%=vox.getViewType()%>"/> 

Mais je reçois l'exception suivante

[jspc] Error encountered while compiling 'jspURI' 
view_details.jsp:136:22: The required attribute "viewID" is missing. 

        <cmd:requireDisplay viewID="<%=vox.getViewID()%>" viewType="<%=vox.getViewType()%>"/> 

        ^----------------------^ 

view_details.jsp:136:22: The required attribute "viewType" is missing. 

        <cmd:requireDisplay viewID="<%=vox.getViewID()%>" viewType="<%=vox.getViewType()%>"/> 

        ^----------------------^ 

view_details.jsp:136:42: This attribute does not support request time values. 

        <cmd:requireDisplay viewID="<%=vox.getViewID()%>" viewType="<%=vox.getViewType()%>"/> 

                 ^---------^ 

view_details.jsp:136:57: This attribute does not support request time values. 

        <cmd:requireDisplay viewID="<%=vox.getViewID()%>" viewType="<%=vox.getViewType()%>"/> 

                                 ^----------^ 

Est-ce que je manque quelque chose? Comme dans le tld, même j'ai essayé de donner TagExtraInfo aussi. Mais pas de chance.

Toute aide est très appréciée.

Répondre

2

J'ai trouvé le problème. Il est une faute de frappe :(

<rtexpvalue>true</rtexpvalue> 
entrée

censé être

<rtexprvalue>true</rtexprvalue> 
Questions connexes