powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / GXT vs ExtJS vs jQuery
25 сообщений из 70, страница 2 из 3
GXT vs ExtJS vs jQuery
    #38203000
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪпередача модели во вьюхи.

Что это такое?
как ты передаешь данные в хтмл.

Йуный джавистЪнавскидку: обработка параметров реквеста, их валидация и конвертация

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

Йуный джавистЪотдельной большой главой идет авторизация & co. которую мы, конечно же, тоже сами наваяем.

Какая именно авторизация?
доступ к урл на базе ролей, доступ к методам на базе ролей

Йуный джавистЪТы приведи пример, что используя вот такой-то фреймворк ты можешь так-то имплементировать такую-то функциональность, а на сервлетах не можешь.где я говорил, что не могу? вот нахрена прикидываться шлангом? перечитай еще раз мои посты. понятное дело, что, если фреймворки базируются на servlet api - нет ничего такого, что нельзя реализовать голыми сервлетами. я говорил, что придется изобретать колеса. много.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203040
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- получить параметры по строковому идентификатору (надо объяснять, почему плохо? надо воротить свой механизм именования, так что имя параметра как строка упоминался ровно один раз, а во фримаркер и сервлет попадал в виде константы)

Мб я тупой, но я ничего не понял. Как можно получить параметры, если не по строковому идентификатору? Что за механизм именования?
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
наверно это не устраивает:
Код: java
1.
String idPOI = request.getParameter("idpoi");
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203073
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
String idPOI = request.getParameter("idpoi");


А как надо? Что не так в этом коде?
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203074
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪМб я тупой, но я ничего не понял. Как можно получить параметры, если не по строковому идентификатору? Что за механизм именования?т.е. по остальному возражений нет, если ты из всего написал только про это?

Petro123Йуный джавистЪ,
наверно это не устраивает:
Код: java
1.
String idPOI = request.getParameter("idpoi");


не устраивает необходимость указать каждый такой idpoi минимум дважды
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203089
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ
Код: sql
1.
String idPOI = request.getParameter("idpoi");


А как надо?
что не так, я написал выше. на счет как надо, ну мне вот так нравится:
Код: html
1.
2.
3.
<html>
....
<beaneditor context="user"/>


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
//вызываем как http://localhost/edituser для создания или http://localhost/edituser/23 для редактирования
class EditUser
{

    @PageActivationContext
    @Property
    private User user;

    @InjectComponent
    private Form form;

    @InjectField
    private Field login;

    void onValidateForm()
    {
        if (userDao.existsUserWithSameLogin(user))
        {
            form.recordError(getMessage("user-already-exists"), login);
        }

        if (form.getHasErrors())
        {
            return;
        }
        try
        {
            userDao.save(user);
        } catch (Exception ex)
        {
            form.recordError(getMessage("error-saving-user"));
        }
    }

    void onSuccess()
    {
        return UserList.class; //redirect
    }
}
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203129
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для полноты примера, а где настраивается валидация User, какие атрибуты обязательны, а какие нет?
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203142
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не устраивает необходимость указать каждый такой idpoi минимум дважды
Дважды - это один раз в шаблоне, один раз в сервлете? А какая альтернатива есть?
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203151
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪДля полноты примера, а где настраивается валидация User, какие атрибуты обязательны, а какие нет?
есть 3 способа
1) JSR-303
2)
Код: html
1.
2.
3.
4.
<form ...>
<input t:type="text" value="user.login" validate="required,minlength=5"/>
<input t:type="text" value="user.email" validate="required,email"/>
</form>


3) см. метод onValidateForm в моем примере

1) и 2) это валидация на клиенте
3) на сервере
лично я предпочитаю 2+3, потому что (как я уже неоднократно писал) прибивая аннотации к доменному объекту user мы будем вынуждены тащить их за собой повсюду. возможно в данном случае это и не страшно, но я вот например не знаю, скомпилится ли код на андроиде.

кстати сообщения об ошибках при валидации сгенерятся автоматом для базовых валидаторов, причем название поля будет в сообщении тоже переведено (если у нас есть <label for="login"> и ресурс login-label=Имя пользователя)
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203172
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪА какая альтернатива есть?
если на фримаркере, то лично я заводил для каждой формы энумы вида MY_ID("id"), скармливал их модели фримаркера, в разметке писал ${id} , а в контроллере getParameter(MY_ID), т.е. в разметке это по-любому строки, но хотя бы в контроллере константы. ну и плюс тут же ошибка при генерации страницы, если имя неверно (в отличии от простых строк). Хотя думаю можно даже энумы фримаркеру скормить. Итого велосипедец.


или так как я в примерах привел. в них в разметке тоже фактически строка НО, благодаря поддержке фреймворка со стороны IDE (тоже аргумент кстати) - работает подсветка синтаксиса (user подчеркнет, если нет такого свойства в классе EditUser) , a также работает рефакторинг (если переименовать user.login -> user.login1 - это отобразится в разметке). Ну и опять же таки, при опечатке/не существующем свойстве - тут же ошибка рендеринга страницы в рантайме.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203175
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопрос - я правильно понимаю что при GET запросе мы просто получим формочку, а при пост - будет попытка создать пользователя? Что это за фреймворк кстати?
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203181
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪЕще вопрос - я правильно понимаю что при GET запросе мы просто получим формочку, а при пост - будет попытка создать пользователя?
так точно. т.е. если в терминах Spring MVC, то EditUser это контроллер как минимум с двумя методами (в данным случае).

Йуный джавистЪ Что это за фреймворк кстати?
ну вот. все обернулось так, как будто я что-то рекламирую. это тапестри 5
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203210
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaЙуный джавистЪЯ бы фигачил на чистых сервлетах + Freemarkerтвой рейтинг упал в моих глазах на пару пунктов. хотелось бы посмотреть на нафигаченный код.
Лучше не обращайте внимания. По-моему это какой-то местный юмор для посвященных. Любой вопрос о фреймворках в конце концов сводится к сервлетам
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203251
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203254
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюк)))
У меня предложение). Чтобы меньше флейма написать пример вызова модального окна на этих 3х фреймворках. Дешево и сердито. Вдруг у аффтара больше ничего не надо)).
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203261
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
class UserServlet extends HttpServlet{
	public void service(HttpServlet req,HttpResponse resp){
		User user = null;
		if(req.getMethod().equals("GET")){
			if(req.hasParameter("id")){
				user = userDao.getById(req.getParamter("id"));
			}
		}else if(req.getMethod().equals("POST")){
			user = new User();
			BindingUtils.validateRequired(req,user,"firstname");			
			BindingUtils.validateDate(req,user,"birthdate");
			if(!req.hasAttribute("has_validation_errors")){
				userDao.save(user);	
				resp.redirect("userlist");
			}
		}
		Map data = new HashMap();
		data.put("user",user);
		SomeTemplateEngine.render(resp.out,data,"/templates/usertemplate")
	}
}

class BindingUtils{
	static boolean validateDate(HttpRequest req,Object o,String prop){
		DateFormat somedateFormat = ...;
		Date date = null
		try{
			date = somedateFormat.parse(req.getParameter("prop"));
		}catch(ParseException e){
			req.setAttribute(prop+"_message",LocalizationUtils.getMessage("NOT_A_DATE"));
			req.setAttribute("has_validation_errors",true);
			return false;
		}
		BeanUtils.set(o,prop,date);
		return true;
	}
	//по аналогии методы для другой валидации
}
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203274
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторa также работает рефакторинг (если переименовать user.login -> user.login1 - это отобразится в разметке).

Непонятно, зачем такие переименования делать. К тому же если вы где-то в яваскрипте ссылаетесь на инпут с таким именем, то рефакторить уже нельзя, так как яваскрипт не отрефакторится.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203284
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪНепонятно, зачем такие переименования делать
зачем у ява бина вдруг понадобилось переименовать поле? странный вопрос.

Йуный джавистЪ. К тому же если вы где-то в яваскрипте ссылаетесь на инпут с таким именем, то рефакторить уже нельзя, так как яваскрипт не отрефакторится.я уж если и ссылаюсь, то на id инпута, а не на геттер getLogin экземпляра user.

по примеру завтра прокомментирую
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203297
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
Пример замечательный)). Как пища для ума).
Только для rich .... насыщенного ГУИ Шаблонные фреймворки не катят.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203313
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только для rich .... насыщенного ГУИ Шаблонные фреймворки не катят.

vkontakte.ru - это насыщенный гуй? Такие сайты как контакт делаются на шаблонных js-фреймворках.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203327
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В мой пример вкралась ошибка - если валидация не прошла, то в шаблогизатор не передается то что ввел пользователь, но это элементарно исправить.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203337
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
- ссылки есть?
- а что думаешь насчет таблиц.
- с третьей стороны, в контакте могут и на ASMe писать. Не тот масштаб.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203370
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- ссылки есть?

На js фреймворки?
http://knockoutjs.com/
http://backbonejs.org/
- а что думаешь насчет таблиц.

Не понял вопрос? Каких таблиц?
- с третьей стороны, в контакте могут и на ASMe писать. Не тот масштаб.

Проблемой является довольно высокий порог входа в яваскрипт, но у сильных яваскриптеров довольно быстро получается лепить интерфейсы.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203388
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня предложение). Чтобы меньше флейма написать пример вызова модального окна на этих 3х фреймворках. Дешево и сердито. Вдруг у аффтара больше ничего не надо)).

С точки зрения веб-фреймворка модальное окно - это обычный див. То что у него стиль position:fixed - задается в css и никого не волнует кроме верстальщика.
...
Рейтинг: 0 / 0
GXT vs ExtJS vs jQuery
    #38203863
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
- ссылки на то что в контакте на шаблонном движке
http://vazelin.org.ua/archives/511/
- таблицы по БЛ, т.к. сложный элемент. Мне только один раз тут дали ссылку на JS-грид
umka_maxRIA номер раз: основное приложение для бизнеса, куча гридов
- порог вхождения, это да. Никому не нравится перетягивание одеяла кода JS <--> Java
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / GXT vs ExtJS vs jQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]