2011-07-11 9 views
0

現在の日付を表示するカスタムタグを作成するsampleを作成しようとしています。私はすべての例を示しましたが、サーバーを起動するときに というエラーが発生しました:"taglib"の子トランスレータが見つかりませんでした。ここで何を修正する必要がありますか?
カスタムJSPタグエラー: "taglib"の子トランスレータが見つかりませんでした

Caused by: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException 
    at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getDeploymentDescriptor(ModuleRefImpl.java:167) 
    at com.ibm.ws.runtime.component.DeployedModuleImpl.open(DeployedModuleImpl.java:237) 
    at com.ibm.ws.runtime.component.DeployedModuleImpl.initialize(DeployedModuleImpl.java:436) 
    ... 53 more 
Caused by: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml 
    at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:147) 
    at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getStandardDeploymentDescriptor(WARFileImpl.java:301) 
    at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EARFileImpl.getDeploymentDescriptor(EARFileImpl.java:401) 
    at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl.getDeploymentDescriptor(ModuleRefImpl.java:165) 
    ... 55 more 
Caused by: java.lang.IllegalStateException: Parent Translator (WebAppTranslator(web-app,1971221886)) did not find a Child Translator for "taglib". 

web.xmlの宣言は次のとおりです。

<taglib> 
<taglib-uri>myTags</taglib-uri> 
<taglib-location>/WEB-INF/lib/DateTagLib.tld</taglib-location> 
</taglib> 

TLDファイル:

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<taglib> 
    <tlibversion>1.0</tlibversion> 
    <info>Custom Date Tag</info> 

    <tag> 
    <name>displayDate</name> 
    <tagclass>com.demo.DateTag</tagclass> 
    <bodycontent>empty</bodycontent> 
    <info>Display Date</info> 
    </tag>  

タグのクラス:

package com.demo; 

import javax.servlet.jsp.tagext.*; 
import javax.servlet.jsp.*; 
import javax.servlet.http.*; 

import java.io.IOException; 
import java.text.*; 
import java.util.*; 

public class DateTag extends TagSupport { 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    public int doStartTag() throws javax.servlet.jsp.JspException { 
     HttpServletRequest req; 
     Locale locale; 
     HttpJspPage g; 
     DateFormat df; 
     String date; 
     JspWriter out; 

     req = (HttpServletRequest) pageContext.getRequest(); 
     locale = req.getLocale(); 
     df = SimpleDateFormat.getDateInstance(SimpleDateFormat.FULL, locale); 
     date = df.format(new java.util.Date()); 

     try { 
      out = pageContext.getOut(); 
      out.print(date); 
      } catch(IOException ioe){ 
       throw new JspException("IO Error: " + ioe.getMessage()); 
      } //end try/catch 

      return Tag.SKIP_BODY; 

    } //end doStarttag 

} //end DateTag 

</taglib> 
+0

更新:内のWEB.xmlにtaglibタグをラップして例外がなくなりました。しかし、今私は取得しています:URIのタグライブラリを見つけることができません – t0mcat

答えて

0

私はそれを理解しました。デプロイメント・ディスクリプタでカスタム・タグの「静的な参照」を行う代わりに、JSPページ自体から動的に参照しようとしました。

関連する問題