Создание динамических форм ввода данных - PullRequest
0 голосов
/ 23 мая 2009

У меня есть небольшой проект, в котором я хотел бы создавать динамические формы ввода данных с небольшой логикой.

Простой вариант использования может быть Футбольная результирующая форма, так что у вас есть кнопка для бомбардира, и при нажатии пользователю будет предложено для игрока. Затем форма отправит сообщение (возможно, в веб-службу, но, возможно, в очередь JMS) с данными события. например, Барселона, Гол, Генри.

Тогда я хочу создать подобную форму для тенниса ...

Моя идея состояла в том, чтобы я создал веб-сервис, где вы определяете бизнес-логику. (события, компоненты, действия, которые вы предпринимаете и т. д.) Сначала я думал, что отправлю определение спорта из веб-службы в формате XML. Затем напишите приложение для анализа XML и динамического создания экрана ввода данных.

Сначала я думал о написании веб-сервиса и возвращении XML-данных. (что будет выглядеть ужасно) технология рендеринга может тогда быть flex / flash и быть тонким клиентом.

Тогда я подумал, что было бы так же легко создать формы, как java-приложение, используя среду свинг-приложений, и это был путь.

Тогда я подумал: ну, вместо того, чтобы написать XML-схему для описания java-форм, могу ли я просто сериализовать java-класс и отправить его по сети.

Оказавшись на этом пути, я теперь задаюсь вопросом, должна ли просто Java-инфраструктура, и динамические формы становятся классом, который вызывается отражением.

Мне бы очень хотелось получить отзыв о вышеперечисленных подходах и о том, как люди из stackoverflow решат эту проблему.

спасибо

Дэвид.

Ответы [ 2 ]

0 голосов
/ 23 мая 2009

Я бы тоже рассмотрел XForms . Он позволяет вам определять как модель данных, так и пользовательский интерфейс как XML, и все, что вам нужно для визуализации на стороне клиента, - это веб-браузер. Я предполагаю, что событие будет отправлено на удаленный сервер, что делает веб-браузер естественным выбором.

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

Кстати, я не понимаю твоих опасений по поводу использования XML. На мой взгляд, это жизнеспособный вариант для вашего случая использования.

0 голосов
/ 23 мая 2009

Я бы избежал сериализации, потому что она немного хрупкая, ее трудно сделать безопасно и трудно диагностировать.

Вы говорите, что это небольшой проект, поэтому действительно ли метаданные должны передаваться от клиента к серверу? Разве вам не намного проще писать метаданные (действительно код) в виде кода Java?

(FWIW, мой первый коммерческий Java-проект создавал формы динамически из спецификации базы данных (с регулярными добавлениями). До этого я работал с C ++, выполняя интерпретатор для обучающих систем. В обоих случаях я бы сейчас (и для последнего десятилетие), написали их как Java. Не отчаивайтесь, люди, неодобрительно бормочущие о «жестко закодированных».)

...