Зачемтеги не работают в JSP с JSF2.0 - PullRequest
1 голос
/ 10 марта 2012

Я работаю с JSF2.0 и хочу создать страницу JSP с компонентом с поддержкой ajax, который является встроенным компонентом в JSF2.0, и я сделал следующее кодирование для этого.

<?xml version="1.0" encoding="UTF-8"?>
<%@ 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 XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"      
      xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</head>
<body>
<f:view>        
        <h3>JSF 2.0 + Ajax Hello World Example</h3>

        <h:form>
           <h:inputText id="sname" value="#{helloBean.name}"></h:inputText>
           <h:commandButton value="Welcome Me">
             <f:ajax execute="sname" render="output" />
           </h:commandButton>

           <h2><h:outputText id="output" value="#{helloBean.sayWelcome}" /></h2>    
        </h:form>             
</f:view>
</body>
</html>        

Теперь, когда я пытаюсь запустить этот код, я получаю следующую ошибку:

org.apache.jasper.JasperException: /TestAjax.jsp (строка: 22, столбец: 7) В библиотеке тегов, импортированной с префиксом «f», не определен тег «ajax» org.apache.jasper.compiler.DefaultErrorHandler.jspError (DefaultErrorHandler.java:42) org.apache.jasper.compiler.ErrorDispatcher.dispatch (ErrorDispatcher.java:408)

Так, пожалуйста, помогите мне, как решить это? И также помогите мне, что тег разрешен в JSP или нет? Заранее спасибо

Я включил следующие файлы jar: jsf-api, jsf-impl, jstl-api-1.2, jstl-impl-1.2

1 Ответ

3 голосов
/ 10 марта 2012

Старый JSP не полностью поддерживается JSF 2. Все, что вы получаете - это запасной модус JSF 1.2.Вместо этого вам потребуется преемник Facelets.

Переименуйте page.jsp в page.xhtml и переформулируйте / переписайте документ следующим образом:

<!DOCTYPE html>
<html lang="en"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets" 
>
    <h:head>
        <title>Insert title here</title>
    </h:head>
    <h:body>
        <h3>JSF 2.0 + Ajax Hello World Example</h3>
        <h:form>
           <h:inputText id="sname" value="#{helloBean.name}" />
           <h:commandButton value="Welcome Me">
               <f:ajax execute="@form" render="output" />
           </h:commandButton>
           <h2><h:outputText id="output" value="#{helloBean.sayWelcome}" /></h2>    
        </h:form>             
    </h:body>
</html>

См. Также:

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