AJAX проверки в стойках 2 - PullRequest
0 голосов
/ 04 февраля 2009

Можем ли мы выполнить проверку на стороне клиента с помощью AJAX в приложении Struts 2? Если да, то, пожалуйста, дайте мне знать процедуру.

Ответы [ 7 ]

2 голосов
/ 17 января 2010

Ответ прямо здесь.

http://struts.apache.org/2.x/docs/ajax-validation.html даже предоставляет пример прототипа вместо dojo

1 голос
/ 04 февраля 2009

Как сказал Серхио, вы можете использовать это, например, в регистрационной форме, где у вас есть такие поля, как:

Username
E-mail
Password
Repeat Password

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

В этом случае вы можете предварительно проверить Username и E-mail на сервере, чтобы убедиться, что они еще не приняты. Вы можете сделать что-то вроде этого (в jQuery, из памяти):

$("#email").change(function(e) {
    var $elem = $(this);
    var val = $elem.val();
    if (!val) {
            myMarkField($elem, "not-valid");
            myValidateForm("myForm");
    } else if (!/^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,7}$/i.test(val)) {
            myMarkField($elem, "not-valid");
            myValidateForm("myForm");
    } else {
        $.getJSON("isEmailAvailable.php", {email:val}, function(result){
            if (result.available) {
                myMarkField($elem, "valid");
                myValidateForm("myForm");
            } else {
                myMarkField($elem, "not-valid");
                myValidateForm("myForm");
            }
        });
    }
});

Где isEmailAvailable.php должен возвращать что-то вроде { available: true }

1 голос
/ 04 февраля 2009

AJAX - это механизм, с помощью которого вы можете вызывать проверку на стороне сервера. «J» в AJAX обозначает Javascript.

Обычно вы используете AJAX (и, следовательно, Javascript) для вызова некоторой проверки на стороне сервера, которая не подходит для проверки на стороне клиента. Например, проверка почтового индекса по таблице допустимых значений.

0 голосов
/ 04 февраля 2009

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

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

Сервер может быть любым. Он может просто вернуть обычный файл xhtml или может ответить на запрос, вызвав сложный скрипт PHP, который генерирует ответ. Черт, это может быть даже выделенное мобильное устройство, полностью реализованное на голом C. До тех пор, пока оно реализует протокол http, в который передавался запрос клиента. Это может быть JavaScript. Невероятно, но верно.

Так что да: это можно сделать с помощью серверного JavaScript, если у вас есть сервер с JavaScript. Но нет: это не вероятно.

И да: вам, очевидно, нужно прочитать об AJAX. (Я не веб-дизайнер, и даже я, кажется, знаю больше, чем вы;) Не оставляйте это так!)

0 голосов
/ 04 февраля 2009

Я думаю, вам нужно прочитать немного об AJAX.

Я рекомендую эту ссылку: http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html

Я думаю, что это просто и легко понять.

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

Ваш JavaScript должен будет ждать ответа, чтобы обработать его (в вашем примере показать или скрыть сообщение об ошибке).

В основном это позволяет вам выполнить некоторый код на сервере и обновить страницу без обновления страницы.

0 голосов
/ 04 февраля 2009

Если вы собираетесь выполнять проверку ввода на стороне сервера, тогда для чего вам нужен JavaScript?

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

Если вы хотите использовать AJAX для какой-либо проверки на стороне сервера (и вы используете JQuery), это должно как минимум начать:

function validate(fieldName)
 {
    $.get('/validation.php',
          {'value' : fieldName.value, 'name' : fieldName.name},
          function(data, textStatus) 
           {
               if(data)
                {
                   fieldName.style.class = 'validFormInput';
                }
               else
                {
                   fieldName.style.class = 'invalidFormInput';
                }
           })
 }

Я не эксперт по JS / JQuery, и я не проверял это, поэтому я только начал.

0 голосов
/ 04 февраля 2009

Как бы вы это сделали? Вы используете JS для программирования на стороне клиента (включая проверку), это не имеет никакого отношения к стороне сервера.

Дополнительно: проверка на стороне сервера через JS на стороне клиента была бы плохой идеей, так как весь ваш код проверки был бы открыт пользователю.

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