1

我正在从 jsf 1.1(带有richfaces 3.1.6)迁移到2.0(带有richfaces 4.3.4)。我在 Richfaces 4.3.4 中遇到了一些问题,并且无法弄清楚。我编写了以下 test.xhtml 以更好地描述我遇到的问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.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"
    xmlns:t="http://myfaces.apache.org/tomahawk"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
    <title>My Account - View Device(s)</title>
    <script type="text/javascript" src="redesign/scripts/jquery.js?v=1.7.2"></script>
    <script type="text/javascript" src="redesign/scripts/jquery.filter_input.js"></script>

    <script type="text/javascript">
        //<![CDATA[
        $(document).ready(function(){
            $('#testForm:\\numField').filter_input({regex:'[0-9]'});
        });
        //]]>

    </script>
    </h:head>

    <h:body>
        <h:form id="testForm">
            <h:outputText value="User ID: " /><h:inputText id="numField" value="#{testBean.userID}"/>
            <h:commandLink action="#{testBean.updateUserID}" value="myfaces CommandButton"/>
            <h:outputText value=" | " />
            <a4j:commandLink reRender="testForm" value="A4J Command Link" action="#{testBean.updateUserID }" /> 
        </h:form>
    </h:body>
</html>

以下是我在这个 test.xhtml 中看到的问题:

1) 当 test.xhtml 页面中存在“a4j:commandLink”标签时,所有 jquery 插件都无法加载(在这种情况下获取 $("#testForm\:numField").filter_input 不是函数错误)。如果我从此 test.xhtml 页面中删除了“a4j:commandLink”标签,所有插件都可以正常工作。

2) 单击“a4j:commandLink”时出现此错误:javax.el.PropertyNotFoundException:在类型 com.arch.myaccount.jsf.TestBean 上找不到属性“updateUserID”。绑定到相同操作的“h:commandLink”工作得很好。

我将不胜感激任何帮助。

4

1 回答 1

1

<a4j:commandLink reRender="testForm" value="A4J Command Link" action="#{testBean.updateUserID }" />

reRender已更改为render从 RichFaces 3 -> RichFaces 4。更改它,然后它将被“重新渲染”就好了。

于 2013-10-23T05:54:17.187 回答