Мой код для проверки введенных значений URL будет таким, как показано ниже:
try{
urls.eachWithIndex { u, i ->
String countryCode = u.key;
String url = urls["${u.key}"]
if(url != ""){
Boolean valid = helperService.isURLValid(url)
if(valid == false){
this.errors.reject("Incorrect URL is entered for "+countries.get(countryCode)+" - please ensure to use a correct URL for More Games.")
return [];
// assert false
// params.gamesUrls = url
}
}
}
}catch (Exception ex) {
logger.warn("Incorrect URL is entered", ex)
return [];
}
введенные значения очищаются при сбое проверки URL.
Как отобразить ошибки, но не очистить введенный ввод (попытка возврата [], но это бесполезно)
вот код gsp ...
<g:form action="wizard">
<table>
<g:each in="${countries}" status="i" var="country">
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
<td><img border="0" src="/wizard/image/flags/${country.key}" alt="" /> <label for="gamesUrls.${country.key}">${country.value}</label></td>
<td><g:textField name="gamesUrls.${country.key}" style="width:350px" value="${moreGamesUrls.get(country.key)}" onchange="\$(this).addClassName('changed');" maxlength="255"/></td>
<td><input type="button" value="Revert" onClick="revertTextValue('gamesUrls.${country.key}')" /></td>
</tr>
</g:each>
</table>
<g:submitButton name="back" value="Back" /> <g:submitButton name="next" value="Confirm" />