org.apache.jasper.JasperException: /JSP/BillingPayment.jsp(15,3) 没有标签“ajax”在以前缀“f”导入的标签库中定义

发布于 2024-10-28 00:39:58 字数 948 浏览 1 评论 0 原文

对 JSF 2 有一些疑问,我只想使用 JSF 2 的 ajax 功能,而不打算使用它的任何实现。

已从 http 获取 JSF 库: //download.java.net/maven/2/com/sun/faces/jsf-api/2.1.1-b03/

但这些仍然不支持我用来实现功能的ajax标签。

我收到错误 org.apache.jasper.JasperException: /JSP/BillingPayment.jsp(15,3) 在以前缀“f”导入的标签库中没有定义标签“ajax” 对于以下请求。

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<body>
<h:form>
    <h:panelGrid>
        <h:inputText value="#{dataTableBean.sponsorID}">
            <f:ajax event="keyup" />
        </h:inputText>
        <h:outputText id="text" value="#{dataTableBean.sponsorID}" />
    </h:panelGrid>
</h:form>
</body>
</html>

为此,我认为我没有合适的库,请给我支持 ajax 的正确 JSF2 库。

Have some doubt with JSF 2, I would like to use the ajax functionality of JSF 2 only, not going to use any of its implementations.

Have taken the JSF libraries from http://download.java.net/maven/2/com/sun/faces/jsf-api/2.1.1-b03/

But still none of these are supporting the ajax tag that I am using to implement the functionality.

I get the error
org.apache.jasper.JasperException: /JSP/BillingPayment.jsp(15,3) No tag "ajax" defined in tag library imported with prefix "f"
for the following request.

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<body>
<h:form>
    <h:panelGrid>
        <h:inputText value="#{dataTableBean.sponsorID}">
            <f:ajax event="keyup" />
        </h:inputText>
        <h:outputText id="text" value="#{dataTableBean.sponsorID}" />
    </h:panelGrid>
</h:form>
</body>
</html>

For this I presume, I am not having the proper library, please can you give me the correct JSF2 library that supports ajax.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空气里的味道 2024-11-04 00:39:58

您必须使用 Facelets 技术。 您的 sth.xhtml 将具有此形式

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
    <link rel="stylesheet" type="text/css" href="my.css" />
</h:head>
<h:body>
</h:body>
</html>

如果您在创建 jsf 页面时使用 netbeans ide 7.1,则 ,请检查 faceletes 选项。
我有一个类似的问题
h:outputScript 未在库 h 中定义

You have to use Facelets Technology. Your sth.xhtml will have this form

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
    <link rel="stylesheet" type="text/css" href="my.css" />
</h:head>
<h:body>
</h:body>
</html>

If you are using netbeans ide 7.1 when you are creating a jsf page check the faceletes option.
I had a similar question
h:outputScript not defined in library h.

你的心境我的脸 2024-11-04 00:39:58

您的链接指向 jsf-api.jar。您还需要 jsf-impl.jar,您可以在 此目录

如果您的类路径中包含这两者,您应该能够访问 TLD。我认为没有 jsf-impl.jar 就无法使用 jsf。

此外,您必须使用 f:view 标记在页面上包含所有组件标记。所以你的页面应该具有以下结构:

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

<f:view>
 <html>
  <body>
    <h:form>
      <h:panelGrid>
        <h:inputText value="#{dataTableBean.sponsorID}">
          <f:ajax event="keyup" />
        </h:inputText>
        <h:outputText id="text" value="#{dataTableBean.sponsorID}" />
      </h:panelGrid>
   </h:form>
  </body>
 </html>
</f:view> 

Your link points to the jsf-api.jar. You need jsf-impl.jar as well which you can find in this directory.

If you have both in your classpath, you should be able to access the TLDs. I think there's no way to use jsf without a jsf-impl.jar.

Furthermore, you have to include all components tags on your page with the f:view tag. So your page should have the following structure:

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

<f:view>
 <html>
  <body>
    <h:form>
      <h:panelGrid>
        <h:inputText value="#{dataTableBean.sponsorID}">
          <f:ajax event="keyup" />
        </h:inputText>
        <h:outputText id="text" value="#{dataTableBean.sponsorID}" />
      </h:panelGrid>
   </h:form>
  </body>
 </html>
</f:view> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文