Дорожки связывают проверку инициирования события, которая является неправильной

У меня есть тег stripes:link в jsp с атрибутом события:

<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 и при отладке боба. Почему stripes:link инициировал бы это?
Если я изменяю его на stripes:submit затем, это прекрасно.

спасибо,

Dave

1
задан enkor 9 June 2010 в 13:45
поделиться

1 ответ

Причина его срабатывания заключается в том, что stripes: submit должны иметь поля в форме, поэтому эти поля передаются на сервер при отправке формы. Со ссылкой вы не получите никаких полей, если не добавите их в качестве параметров ссылки.

Вы можете исправить это одним из двух способов в зависимости от:

Вы хотите, чтобы эти поля присутствовали в компоненте при щелчке по ссылке? Затем вам нужно будет заполнить ссылку параметрами, чтобы они были добавлены в стиле строки запроса 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>

С другой стороны, если они вам не нужны в вашем компоненте для этого события, вы можете сообщить своему @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, если оно не было предоставлено на самом деле.

2
ответ дан 2 September 2019 в 23:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: