2012-05-30 121 views
0

我對Tapestry框架感興趣的原因有幾個:掛毯XML輸出

我必須生成的輸出必須是XML。根據http://tapestry.apache.org/content-type-and-markup.html這沒什麼大不了的。 但是,當它使用actionlink,組件或所有其他Tapestry好東西時,生成的代碼不應該是錨或div,而應該使用一些自定義xml元素/屬性。

難道沒有很多痛苦可以實現嗎? 歡迎使用Tapestry背景機制的變通辦法或內部解決方案。

+0

考慮使用Facelets而不是Tapestry。 –

+0

什麼是無用評論史蒂夫h。 – pstanton

+0

阿爾曼,當它是一些任意的xml節點時,有什麼用途是'actionlink'?請描述你想要達到的目標,這樣人們可以更好地幫助你。謝謝。 – pstanton

回答

1

雖然actionlink將始終呈現爲錨(a)標記,Any組件可以呈現爲任意任意xml元素,並且它和許多其他tapestry組件將根據它們的定義呈現任意(非正式)參數。

例如,(假設你在你的類名爲 '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> 

爲了得到一個組合這兩個,你將需要推出自己的組件。一旦你理解了掛毯更好一點,這很簡單。

看看ActionLink.java(及其超類)的來源,你應該能夠弄明白。

+0

好吧,我如何實現,例如在任何組件 ... – Arman

+0

請參閱更新關於您自己的組件 – pstanton

+0

這完全可以用tapestry完成,但是如果您是初學者,您可能希望從一個更簡單的任務開始,以「替代」方式使用框架。 – pstanton