0

私はタペストリーフレームワークに興味があり、いくつかの理由でいくつかの問題があります:

私が生成しなければならない出力は、XML でなければなりません。http://tapestry.apache.org/content-type-and-markup.htmlによると、これは大したことではありません。しかし、actionlink、コンポーネント、またはその他すべての Tapestry グッズを使用することになると、結果のコードはアンカーまたは div ではなく、いくつかのカスタム xml 要素/属性になります。

多くの痛みを伴うことなくこれをアーカイブすることは可能ですか? Tapestry のバックグラウンド メカニズムの回避策または内部情報は大歓迎です。

4

1 に答える 1

1

actionlinkは常にアンカー (a) タグとしてレンダリングされますが、Anyコンポーネントは任意の xml 要素としてレンダリングできます。それと他の多くのタペストリー コンポーネントは、定義に応じて任意の (非公式の) パラメータをレンダリングします

たとえば、(クラスに「getTheTime」というJavaメソッドがあると仮定すると、私の戻り値はSystem.currentTimeMillis()

<xyz t:type="actionlink" t:id="someaction">
    a element</xyz>

<xyz t:type="any"
        attribute1="${theTime}"
        attribute2="prop:theTime"
        attribute3="theTime">
    xyz element</xyz>

次のようにレンダリングされます。

<a href="/app/page.someaction">a element</a>
<xyz attribute1="1338418847753" attribute2="1338418847753"
        attribute3="theTime">xyz element</xyz>

2 つの組み合わせを取得するには、独自のコンポーネントを作成する必要があります。タペストリーをもう少し理解すれば、これは非常に簡単です。

ActionLink.java (およびそのスーパー クラス) のソースを調べれば、それを理解できるはずです。

于 2012-05-30T23:02:18.350 に答える