2013-12-24 4 views
0

Я не могу вызвать пользовательский тег, который я создал в JSP.Не удалось вызвать пользовательский тег jsp

Соответствующая часть библиотеки тегов дескрипторов:

<!-- username tag --> 
<tag> 
    <name>username</name> 
    <tag-class>abc.xyz.UserNameTagHandler</tag-class> 
    <body-content>empty</body-content> 
</tag> 

и Java класс:

public class UserNameTagHandler extends TagSupport {    
    public int doTag() throws JspException { 
     HttpServletRequest httpServletRequest = (HttpServletRequest)pageContext.getRequest(); 
     String username = httpServletRequest.getRemoteUser(); 
     if (username==null) { 
      username = "Guest"; 
     } else { 
      username = username.replaceFirst("@.*$", ""); 
     } 
     JspWriter jspWriter = pageContext.getOut(); 
     try { 
      jspWriter.print(username); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return SKIP_BODY; 
    } 
} 

и index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib uri="/WEB-INF/miscHelperToolCusLib.tld" 
prefix="misc"%> 
<html> 
    <body> 
    <div> 
     <h1 class="header">Welcome <misc:username />.</h1> 
    </div> 
    </body> 
<html> 

Я вижу на странице: Welcome .

Любая идея, что пошло не так. Любая помощь оценивается.

+0

Вы добавили объявление тега в файл web.xml? [Stack Question] (http://stackoverflow.com/questions/226514/declare-jsp-taglib-directives-in-web-xml) поможет вам. – Swaraj

ответ

1

Наконец-то я решил это сам. Если вы простираетесь от TagSupport, тогда вы должны реализовать функцию doStartTag() вместо doTag().

 Смежные вопросы

  • Нет связанных вопросов^_^