我想在我的Web應用程序中進行身份驗證,當時在頁面上發生了一些操作。例如用戶點擊按鈕「添加到購物車」,如果他還沒有通過身份驗證,然後登錄頁面顯示。登錄後,它返回到previos頁面。 我可以在檢票中使用它來執行此操作嗎?執行自定義授權操作檢票
P.S.在產品頁面上,我還鏈接了「立即購買」,該頁面使用@AuthorizeInstantiation(「USER」)註釋導航到購買頁面。這個鏈接工作得很好。
我認爲MetaDataRoleAuthorizationStrategy可以用於「添加到購物車」上。但可用的操作僅限於ENABLE和RENDER。我可以將自己的Action添加到組件中,但是如何將Action與onClick()方法的組件相關聯?
---編輯---
不知道在哪裏寫,所以我編輯帖子。我嘗試克里斯托夫萊特的解決方案:
add(link = new AjaxFallbackLink("add2cart") {
@Override
public void onClick(AjaxRequestTarget target) {
if (!CynephoneSession.get().isSignedIn()) {
throw new RestartResponseAtInterceptPageException(SignIn.class);
}
user.addItem(item.copy());
target.add(cartPanel);
}
});
但之後我莫名其妙地點擊這個鏈接我看到更新cartPanel在Firefox Ajax響應。我的意思是告訴我網頁的源代碼:
<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="cart2" ><![CDATA[<div class="cart" wicket:id="cart" id="cart2">
<span wicket:id="total">11 800</span> <img src="./resource/top.Top/img/rouble-ver-1346040298957.gif"/><br/>
<img src="./resource/top.Top/img/good-ver-1346040298926.gif"/>х<span wicket:id="quantity">2</span>
</div>]]></component></ajax-response>
不明白它是如何通過例外...
謝謝!我以前沒有看過檢票的例外情況。現在我看到它是另一種控制執行流程的方式。 – cynepnaxa
我試試這個,發生奇怪的結果。我把它添加到頭。 – cynepnaxa
你可以試着用調試器來看看究竟發生了什麼嗎?如果拋出異常,我看不到這個代碼如何執行。 –