2009-05-23 3 views
0

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

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

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

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

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

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

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

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

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

спасибо

David.

ответ

0

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

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

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

0

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

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

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

Смежные вопросы