AEM:在服务器端验证后显示警告框

时间:2016-06-15 21:25:47

标签: forms jsp aem

我在AEM中有一张表格。单击提交按钮时,控制转到forward.jsp。我在forward.jsp中做了一些验证,并希望在验证失败后在页面上生成警报。如何将警报传递给页面?

if(condition){
    // validation success
} else{
    // code for alert
}

FormsHelper.redirectToReferrer(slingRequest, slingResponse);

2 个答案:

答案 0 :(得分:0)

如果您想在服务器端进行验证,但在客户端显示警报,我建议您使用JavaScript进行AJAX调用。您可以更改提交按钮,以便在单击它时触发AJAX调用而不是提交表单。有关如何使用jQuery完成此操作的说明,请参阅http://api.jquery.com/jquery.ajax/,但其他选项也可用于发出AJAX请求。

在对该AJAX请求的响应中,您可以根据需要添加。它可以是状态代码,JSON字符串或HTML模糊。然后,您将编写客户端JavaScript来处理响应,并根据给定的响应执行任何适当的操作 - 例如在页面上显示警报。

如果在http://michaelsoriano.com/how-to-ajax-validate-forms/

看到这种方法的一个例子

答案 1 :(得分:0)

您可能会想到这个主题更复杂。基本上,您可以在基础组件中看到示例实现,例如/libs/foundation/components/form/text/text.jsp。它们都使用com.day.cq.wcm.foundation.forms.LayoutHelper#printErrors方法来检查它们是否是字段上的错误。这发生在com.day.cq.wcm.foundation.forms.ValidationInfo类中,该类被设置为请求属性,以便在不同类之间传输字段状态。您还可以查看执行实际验证的com.day.cq.wcm.foundation.forms.FieldHelper类。在forward.jsp中加入某种逻辑是错误的方法