0

複合コンポーネント内に primefaces autocomplete メソッドを埋め込もうとしています。

ただし、「complete」メソッドにアクセスしようとすると失敗します。

これが私のコードです:

..
<composite:interface>
  <composite:attribute name="car" required="true" />
  <composite:attribute name="brandList" required="true" method-signature="java.util.List complete(java.lang.String)" />
  <composite:attribute name="style" required="false" />
</composite:interface>

<composite:implementation>
  ..

  <h:outputLabel value="DropDown :" for="dd" />
  <p:autoComplete id="dd" dropdown="true" value="#{cc.attrs.car.brand}" completeMethod="#{cc.attrs.brandList}" />
  ..
</composite:implementation>

そして呼び出し:

<cp:carPropertiesAutoComplete car="#{carController.car}" brandList="#carController.complete}" />

そしてバッキングビーン:

public List<String> complete(String query) {
  List<String> brandList = new ArrayList<String>();

  brandList.add("brand0");
  brandList.add("brand1");

  for (String brand : brandList) {
    if(brand.contains(query)) {
      brandList.add(brand);
    }
  }
  return brandList;
}

そしてログ:

警告: /newCarAutoComplete.xhtml @17,112 brandList="#{carController.complete}": クラス 'CarController' にはプロパティ 'complete' がありません。javax.el.PropertyNotFoundException: /newCarAutoComplete.xhtml @17,112 brandList="#{carController.complete}": クラス「CarController」にはプロパティ「complete」がありません。com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) で com.sun.faces.facelets.el.ContextualCompositeMethodExpression.invoke(ContextualCompositeMethodExpression.java:190) で com.sun.faces.facelets .tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:450) at org.primefaces.component.autocomplete.AutoComplete.broadcast(AutoComplete.java:340) at javax.faces.component.UIViewRoot.

私はググってこれを見つけました(解決策のない同じ問題) http://forum.primefaces.org/viewtopic.php?f=3&t=1884

Mojarra 2.1.6 および PrimeFaces 3.3.1 で Glassfish サーバー 3.1.2 を実行しています。

手伝ってくれませんか?私はこれに何時間も苦労しました =(

4

1 に答える 1

1

@FacesComponent で完全なメソッドを作成しないのはなぜですか? 次に、{cc.attrs.brandList} ではなく {cc.brandList} を使用します。

于 2012-07-26T22:33:08.667 に答える