2011-03-15 96 views
1

我正在使用Stripes框架。我想將非字符串對象傳遞給一個ActionBean。這可能嗎?如何將非字符串Java對象傳遞給ActionBean - 條紋

我試圖做的事:

<s:url var="statementUrl" beanclass="sempedia.action.StatementActionBean" prependContext="false" > 
    <s:param name="property" value="${row.key}" /> 
    <s:param name="values" value="${row.value}" /> 
    <s:param name="myString" value="Why kick a moo cow" /> 
</s:url> 
<jsp:include page="${statementUrl}"/> 

row.key resolvs到自定義類我已經定義並row.value是我真正定義

回答

2

不,沒有自定義類的ArrayList。

我的意思是,總有辦法。您可以將表單序列化爲一個字節數組,並將Base64編碼爲一個字符串,然後將其作爲參數傳遞。

但是,然後你開始運行URL限制(他們只能這麼長)。

如果可行,您可以將數據保存在會話中,稍後再引用它。您可以使用Stripes FlashScope,它將它填充到Session中,但僅用於下一個請求,然後消失。

您可以將數據編碼到HTML表單中,但是您需要POST,而不是使用GET。

您可以將數據保存到另一個存儲區(數據庫,memcache,類似的東西),並簡單地返回一個密鑰,然後傳入密鑰。

真的取決於你想要做什麼的生命週期以及數據的性質。

+0

謝謝,FlashScope聽起來像是要走的路。 – Ankur 2011-03-15 04:31:48

+1

請注意,默認情況下,FlashScope的過期超時時間爲120秒。這是因爲它是爲了在發佈模式之後的重定向中使用。只要確保您設置適合您使用的過期超時時間即可。 – Kdeveloper 2011-03-15 21:02:42