gpt4 book ai didi

java - Stripes 链接事件触发的验证不正确

转载 作者:行者123 更新时间:2023-11-30 05:12:17 25 4
gpt4 key购买 nike

我在 jsp 中有 stripes:link 标记,并带有事件属性:

<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}"  addSourcePage="true" event="showTab2Link">

这将触发验证以触发嵌套属性:

    @ValidateNestedProperties({
@Validate(field="county", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})

但是,如果验证的实际值不存在,但它们存在于 html 中以及调试 bean 时,那就没问题了。为什么 stripes:link 会触发这个?
如果我将其更改为 stripes:submit 那么就可以了。

谢谢

戴夫

最佳答案

它被触发的原因是因为 stripes:submit 必须具有表单中的字段,因此这些字段在提交表单时会传输到服务器。通过链接,您不会获得任何字段,除非将它们添加为链接参数。

您可以通过以下两种方法之一修复此问题,具体取决于:

您希望在单击链接时这些字段出现在 bean 上吗?然后,您需要使用参数填充链接,以便将它们添加为 GET 查询字符串样式:

<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}"  addSourcePage="true" event="showTab2Link">
<stripes:param name="county" value="${actionBean.county}" />
<stripes:param name="parish" value="${actionBean.parish}" />
<stripes:param name="holding" value="${actionBean.holding}" />
link text
</stripes:link>

另一方面,如果您的 bean 中不需要它们来处理该事件,您可以告诉 @ValidateNestedProperties 忽略该事件:

@ValidateNestedProperties({
@Validate(field="county", on="!showTab2Link", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", on="!showTab2Link", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", on="!showTab2Link", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})

然后,验证不会在事件 showTab2Link 上运行,除非确实提供了该事件。

关于java - Stripes 链接事件触发的验证不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com