2011-09-12 49 views
0

我用下面的(例子)其中是f:屬性名稱/值對存儲?

<h:commandButton value="Submit" action="#{indexBean.submit}" 
     actionListener="#{indexBean.btnListener}" > 
    <f:attribute name="valueOne" value="v1" /> 
    <f:attribute name="valueTwo" value="v2" /> 
    <f:attribute name="valueThree" value="v3" /> 
</h:commandButton> 

當頁面渲染我期待在通過瀏覽器的源代碼,但我不能以某種隱藏字段或任何其他的發現價值。

它們存儲在服務器端的後端,視圖狀態還是其他地方?

祝好,

回答

0

它們被存儲爲有問題的組件的屬性。它們不會以生成的HTML輸出結束,因爲組件的渲染器不會將它們識別爲標準HTML屬性。

組件依次存儲在服務器端內存的組件樹中,如果它涉及UIForm,UIInputUICommand組件,則它也存儲在視圖狀態中。

如果您想傳遞可見參數,則應該使用<f:param>。然後,它們將在組件的HTML表示的生成的JavaScript onclick函數中可見。 注意在<h:commandButton>只支持自JSF 2.0以來。

+0

根據你的「答案」應該實際上已發佈爲評論(但你不能因爲你沒有使用相同的用戶帳戶),是的,你可以做到這一點。但是您也可以將當前登錄的用戶注入爲託管bean屬性,這樣就不需要通過'f:attribute'來傳遞它。 – BalusC

+0

我在註冊之前發佈了我的問題! 每個人都值得第二次機會:P 再次感謝! – Dimman

相關問題