введенные значения очищаются в gsp - PullRequest
0 голосов
/ 22 ноября 2011

Я ввожу значения (URL) в текстовое поле, и когда я нажимаю следующую кнопку, выполняется проверка, действительны ли введенные значения URL.

, если 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 [];
                }

Как только ошибка показывается, она очищает введенные значения и необходимо снова ввести значения.Как я могу ограничить очистку значений (я думаю, что страница снова загружается) или ограничить загрузку страницы снова.

вот команда -

class DeliveryMoreGamesURLCommand implements Command {
    private static final LOG = LogFactory.getLog(DeliveryController.class)

    def wrapperService = ApplicationHolder.application.getMainContext().getBean("wrapperService");
    def customerService = ApplicationHolder.application.getMainContext().getBean("customerService");
    def countryService = ApplicationHolder.application.getMainContext().getBean("countryService");
    def helperService = ApplicationHolder.application.getMainContext().getBean("helperService");
    def ascService = ApplicationHolder.application.getMainContext().getBean("ascService");

    Hashtable<String, String> countries;

    public LinkedHashMap<String, Object> preProcess(sessionObject, params, request) {
        Delivery delivery = (Delivery) sessionObject;

        def customer = Customer.get(delivery.customerId);
        def contentProvider = ContentProvider.get(delivery.contentProviderId);
        def deployment = Deployment.get(delivery.deploymentId);
        def operatingSystem = OperatingSystem.get(delivery.operatingSystemId);

        countries = wrapperService.getCountries(deployment, operatingSystem);
        def sortedCountries = countries.sort { a, b -> a.value <=> b.value };

        def urls =  ascService.getMoreGamesUrlsPerTemplates(deployment, operatingSystem);

        def moreGamesUrls = new Hashtable<String,String>();
        countries.each { country ->
            String countryCode = countryService.getTwoLetterCountryAbbreviation(country.key);
            String url = customerService.getMoreGamesUrl(customer, contentProvider, countryCode);
            if ("".equals(url)) {
                url = urls.get(country.key);
                if (url == null) {
                    url = "";
                }
            }
            moreGamesUrls.put(country.key, url); // We need to use the existing country code if the channels are deployed with three letter country codes
        }

        return [command: this, countries: sortedCountries, moreGamesUrls: moreGamesUrls]
    }

    public LinkedHashMap<String, Object> postProcess(sessionObject, params, request) {
        Delivery delivery = (Delivery) sessionObject;

        def urls = params.gamesUrls;
        LOG.debug("urls from gsp :"+urls)
        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 [];
                }
            }
        }
        }catch (Exception ex) {
                    logger.warn("Incorrect URL is entered", ex)
                    return [];
        }

        def moreGamesUrls = new Hashtable<String, String>();
        urls.eachWithIndex { u, i ->
            String countryCode = u.key;
            String url = urls["${u.key}"]
            moreGamesUrls.put(countryCode, url);
        }

        delivery.countries = countries;
        delivery.moreGamesUrls = moreGamesUrls;
        LOG.debug("moreGamesUrls after edit=${delivery.moreGamesUrls}");

        return null;
    }
}

из команды preprocessданные будут обработаны, и после нажатия следующей кнопки будет вызван постпроцесс и проверка URL-адреса ...

1 Ответ

0 голосов
/ 14 декабря 2011

Решил эту проблему, реализовав moreGamesUrls как глобальную переменную (в которой сохранялись значения даже после появления ошибки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...