0

を持つという名前のプロパティオブジェクトがixlTestありmapます。このマップには、後者のオブジェクトをページのテンプレート ファイルにバインドするために必要な別のマップが保持されます。かなり複雑なオブジェクト グラフ。

私は基本的にこれをやろうとしています:

ixlTest.parameterGroups{'testOptions'}{'serverIp'}.value

ixlTestは、私のページのプロパティ オブジェクト です。parameterGroupsのメンバ変数ですixlTest。この変数はmap. テンプレートファイル内でバインドする必要があると呼ばれる変数を持つオブジェクトであるkeyを持つ別parameterGroupsのエントリがあります。testOptionsmapserverIpvalue

それにはタペストリーのネイティブサポートを使用する必要があり、他のライブラリは必要ありません。また、操作を抽象化するためにメソッドを使用する必要もありません。

ありがとうございました。

4

1 に答える 1

1

これをページ上の Java (または Groovy、または Scala) コードに入れて、テンプレートから参照する方がよい場合もあります。

Tapestry のプロパティ式の構文には、マップを逆参照するための演算子がありません。ただし、メソッドを呼び出すことはできますget()... しかし、Tapestry がジェネリックを把握する機能には制限があります。つまり、プロパティが見つからないというエラーが発生する可能性があります。

これを次のようにコーディングします。

value="testValue"

テンプレートで、および:

public String getTextValue() {
    return ixlTest.getParameterGroups().get("testOptions").get("serverId").getValue(); 
}

クラスで。

Java コードはその場で変更できるため、多くの場合、複雑な式をテンプレートに入れるよりも優れています。Java 側でリファクタリングすると、IDE が認識しないテンプレート内の複雑な式が壊れる可能性があります。

于 2012-11-20T14:18:39.713 に答える