5

次のFTLマークアップは正常に機能し、サーバー側のJiveActionSupportオブジェクトでgetWidgets()を呼び出します。

<#list widgets! as widget>
  -- do something with widget.sku
</#list>

ただし、ウィジェットのプロパティに依存する内部リストが本当に必要です。次のようなものです。

<#list widgets! as widget>
  <#list manufacturers(widget.sku)! as manufacturer>
  -- do something with manufacturer
  </#list>
</#list>

次のいずれかのように、サーバー側のコードを実装しようとしました。

public List<Manufacturer> getManufacturers(int sku);
public List<Manufacturer> getManufacturers(String sku);

しかし、どちらの結果も「式メーカーは123行目で定義されていません」という結果になります。

現在のJiveActionSupportオブジェクトのメソッドにパラメーターを渡すにはどうすればよいですか?ありがとう。

4

2 に答える 2

9

ここであなたを混乱させた可能性があるのはgetFoo()、 as と呼ぶことはできますが、 as と呼ぶことはできず、 asとしか呼ぶことfoogetFoo(param)できないということです。しかし、これが JavaBeans の仕組みです。JavaBean プロパティを定義しますが、定義しません。foo(param)getFoo(param)getFoo()getFoo(params)

とにかく、getManufacturersがデータ モデル (ルート) オブジェクトのメソッドである場合、(適切なオブジェクト ラッピングを前提として) として呼び出すことができるはずですgetManufacturers(param)action.原則として始める必要はありません。

于 2012-05-08T15:33:17.820 に答える
4

一般に、次のようにこれを行う必要があるように見えます。

<#list action.getManufacturers("123")! as manufacturer>
  -- do something with manufacturer
</#list>

特に、FTL では Thing を使用してサーバー側メソッドgetThings()を呼び出すことができますが、 action.getThing("123")を使用してサーバー側メソッドgetThing(String)を呼び出す必要があります。

于 2012-05-08T15:01:53.757 に答える