Нет тега "ссылка", определенного в библиотеке тегов, импортированного с префиксом "h" |кот |затмение - PullRequest
0 голосов
/ 08 июля 2010

Я работал в Netbeans IDE и переключился на Eclipse.

Я создал простой JSF 2.0 на основе мастера в eclipse.Полный файл это.

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<h1>Hi, This is my JSF 2. Applicaiton</h1>
<br />
Click <h:link outcome="UserLogin">here</h:link> to go to login
</f:view>
</body>
</html>

При развертывании этого приложения на сервере tomcat 7.0 появляется следующее сообщение об ошибке:

org.apache.jasper.JasperException: /index.jsp(14,6) No tag "link" defined in tag library imported with prefix "h"

В моей среде IDEможно увидеть

Помощь оценена.

Ответы [ 3 ]

1 голос
/ 04 февраля 2011

<h:link> был новым в JSF 2.0 и не существовал в JSF 1.x. Таким образом, эта ошибка может иметь следующие причины:

  1. В ваших /WEB-INF/lib есть библиотеки JSF 1.x, а не библиотеки JSF 2.0.

  2. Ваш faces-config.xml объявлен как JSF 1.x вместо JSF 2.0. Убедитесь, что он соответствует спецификации JSF 2.0.

    <faces-config
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
        version="2.0">
    
0 голосов
/ 04 февраля 2011

Я тоже нахожусь в центре этой проблемы, я хотел бы найти какое-то решение, но мне не удается.Как я обнаружил, вы находитесь на том же шаге, что и я.

Если вы используете фейслеты, вы можете увидеть этот тег, вместо этого, если вы используете обычный JSF, он выдаст ошибку, как вы упомянули.

Вы можете попробовать эту процедуру, чтобы решить вашу проблему.

  1. Попробуйте понять, как настроить Facelets в вашем веб-приложении.Например, для моего веб-приложения файлы, оканчивающиеся на *.xhtml, обрабатываются движком Facelets.Переименуйте файл в *.xhtml.

  2. Добавьте к этому

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    

    и

    <html
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets">
    

    вместо обычного html.

  3. Удалите любую директиву

    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    

Подробные инструкции можно найти здесь: http://wiki.apache.org/myfaces/MigrateFromJspToFacelets

Тогда вы сможете обработатьh:link.

0 голосов
/ 08 июля 2010

Несколько вопросов:

  1. Где находится ваша библиотека JSF?

  2. Я думаю, что вы имели в виду больше после: в моей IDE я также вижу, что ведет в.

  3. Eclipse обычно довольно хорошо умеет находить ваши библиотеки тегов.Вы жалуетесь на использование этих библиотек на странице вашего редактора jsp?

Сначала дайте нам знать больше информации о вашей настройке.

Я выброшу очевидное решение: вы потеряли ссылку на ваш JSF-файл (jsf-impl.jar).Включение этого в вашу папку Tomcat lib должно исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...