0

解释:

我有一个 JSF 命令链接,它在支持 bean 中设置一个成员,但是,当使用 setPropertyActionListener 设置支持 bean 成员时,我得到一个标记无法识别的错误。

该项目可以毫无问题地构建和部署。显示默认页面,然后使用 setPropertyActionListener 在页面请求上引发错误。

其他同事可以使用相同的设置很好地运行应用程序。我猜我缺少一个库,或者某个目录或文件存在权限问题。

设置:

  • 网豆 6.7.1
  • Apache Tomcat 6.0.18
  • JDK 1.6
  • JavaServer Faces 1.2
  • 小面

代码:

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

    <ui:composition template="/template.xhtml">

        <ui:define name="body">      
            <h:commandLink value="view" action="viewer">
                <f:setPropertyActionListener target="#{ViewerBean.ticket_id}" value="#{ticket.ticket_id}" />
            </h:commandLink>
        </ui:define>
    </ui:composition> 
</html>

Stacktrace: 完整的跟踪

javax.servlet.ServletException: /portal/index.xhtml @65,125 标签库支持命名空间:http: //java.sun.com/jsf/core,但没有为名称定义标签:setPropertyActionListener

com.sun.facelets.tag.TagException: /portal/index.xhtml @65,125 标签库支持命名空间:http: //java.sun.com/jsf/core,但没​​有为名称定义标签:setPropertyActionListener

Apache 中的库:

  • 注释-api.jar
  • catalina.jar
  • el-api.jar
  • 碧玉.jar
  • mysql-connector-java-5.1.7-bin.jar
  • tomcat-coyote.jar
  • tomcat-i18n-fr.jar
  • catalina-ant.jar
  • catalina-tribes.jar
  • 碧玉-jdt.jar
  • tomcat-dbcp.jar
  • tomcat-i18n-ja.jar
  • catalina-ha.jar
  • commons-logging-1.1.1.jar
  • 碧玉-el.jar
  • jsp-api.jar
  • servlet-api.jar
  • tomcat-i18n-es.jar

项目中的库:

  • 激活.jar
  • commons-digester.jar
  • ezmorph-1.0.6.jar
  • jstl.jar
  • richfaces-ui-3.3.0.GA.jar
  • commons-beanutils-1.8.0.jar
  • commons-lang-2.4.jar
  • jsf-api.jar
  • jxl.jar
  • 标准.jar
  • commons-beanutils.jar
  • commons-logging-1.1.1.jar
  • jsf-facelets.jar
  • 邮件.jar
  • commons-collections-3.2.jar
  • commons-logging.jar
  • jsf-impl.jar
  • richfaces-api-3.3.0.GA.jar
  • commons-collections.jar
  • el-impl-1.0.jar
  • json-lib-2.2.3-jdk15.jar
  • richfaces-impl-3.3.0.GA.jar
4

2 回答 2

1

您没有精确说明您在项目中使用的 JSF 版本。

实际上,setPropertyActionListener标记已包含在 JSF 1.2 中,并且不适用于 JSF 1.1 项目。

这可以解释你遇到的问题......

于 2009-08-20T14:33:31.333 回答
0

[编辑]

这个问题再次浮出水面,但是,我想我已经找到了解决方案。我认为我的 jsf-facelets.jar 文件有问题。

我下载了最新版本并将其添加到项目中。现在一切似乎都很棒。

2010.01.26


我无法验证确切的冲突是什么,所以我进行了全新安装。

我在运行 Netbeans 6.7 的 Ubuntu 机器上,它是从 Netbeans 网站手动安装的。Apache Tomcat 随 IDE 一起安装。

首先,我删除了 Netbeans 和 Tomcat 的可见目录。我实际上把它们移到了垃圾箱,以防万一出现严重错误。

$ mv /home/bbryan/apps/netbeans6.7 /home/bbryan/.local/share/Trash
$ mv /home/bbryan/apps/apache-tomcat-6.0.18 /home/bbryan/.local/share/Trash

删除这两个目录后,我删除了隐藏的 netbeans 目录。这个很重要; 如果你不下一次安装 netbeans 和 tomcat 将有所有相同的设置,无论好坏。

$ mv /home/bbryan/.netbeans /home/bbryan/.local/share/Trash

删除所有三个目录后,我进行了全新安装,并对我们的本地设置和 BINGO 进行了一些小的调整。

于 2009-08-22T07:57:39.347 回答