我在AEM中有一個窗體。當點擊提交按鈕時,控制轉到forward.jsp。我在forward.jsp中做了一些驗證,並希望在驗證失敗後在頁面上生成警報。我如何將警報傳遞給頁面?AEM:服務器端驗證後顯示警告框
if(condition){
// validation success
} else{
// code for alert
}
FormsHelper.redirectToReferrer(slingRequest, slingResponse);
我在AEM中有一個窗體。當點擊提交按鈕時,控制轉到forward.jsp。我在forward.jsp中做了一些驗證,並希望在驗證失敗後在頁面上生成警報。我如何將警報傳遞給頁面?AEM:服務器端驗證後顯示警告框
if(condition){
// validation success
} else{
// code for alert
}
FormsHelper.redirectToReferrer(slingRequest, slingResponse);
如果您想要進行驗證服務器端,但顯示警告客戶端,我建議您使用JavaScript來進行AJAX調用。你可以改變你的提交按鈕,這樣當它被點擊時,它會觸發AJAX調用而不是提交表單。請參閱http://api.jquery.com/jquery.ajax/以瞭解如何使用jQuery完成此操作,但其他選項也適用於製作AJAX請求。
在響應到AJAX請求你可以把whetever你所需要的。它可以是一個狀態碼,一串JSON或者一段HTML。然後,您將編寫客戶端JavaScript來處理響應,並根據給定的響應進行適當的操作 - 例如在頁面上顯示警報。
看到這個題目是,你可能會覺得更復雜的這種方法的一個例子。基本上你可以在基礎組件中看到示例實現,比如/libs/foundation/components/form/text/text.jsp。他們都使用com.day.cq.wcm.foundation.forms.LayoutHelper#printErrors方法來檢查它們是否是現場錯誤。這發生在com.day.cq.wcm.foundation.forms.ValidationInfo類中,該類被設置爲request屬性,以便在不同類之間傳輸字段狀態。您也可以檢查實際執行驗證的com.day.cq.wcm.foundation.forms.FieldHelper類。在forward.jsp中放置某種邏輯是錯誤的方法