我正在从 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”工作得很好。
我将不胜感激任何帮助。