我有一个小项目,我希望生成动态数据输入表单,后面有一些逻辑。
一个简单的用例可能是 一个足球结果表格,所以你有一个进球者的按钮,当点击时,将提示用户输入一名球员。然后,表单将使用事件数据发送消息(可能是Web服务,但可能是JMS队列)。例如巴塞罗那,目标,亨利。
然后我想创建一个类似的网球形式...
我的想法是我会创建一个Web服务,您可以在其中定义业务逻辑。 (事件,组件,你采取的行动等)最初我以为我会从xml的webservice发送运动定义。然后编写一个应用程序来解析xml并动态创建数据输入屏幕。
我最初考虑编写一个Web服务并返回一个xml数据。 (看起来很糟糕)渲染技术可以是flex / flash并且是瘦客户端。
然后我认为使用swing应用程序框架创建表单作为java应用程序就好了,这就是结果。
然后我想,好吧,不是编写一个xml架构来描述java表单,我可以只序列化一个java类并通过线路发送它。
一旦走上这条道路,我现在想知道是否应该只是一个java框架,而动态表单将成为由反射调用的类。
我很乐意反馈上述方法,以及stackoverflow上的人们如何解决这个问题。
感谢
大卫。
答案 0 :(得分:0)
我会避免序列化,因为它有点脆弱,难以安全且难以诊断。
你说这是一个小项目,元数据真的必须从客户端传递到服务器吗?如果只是简单地将元数据(真正的代码)编写为Java代码,你会不会好多了?
(FWIW,我的第一个商业Java项目是从数据库规范动态创建表单(定期添加)。在此之前我使用C ++运行解释器用于训练系统。在这两种情况下我都会(现在)已经把它们写成了Java。不要因为人们不以为然地对“硬编码”抱怨而推迟。)
答案 1 :(得分:0)
我也会考虑XForms。它允许您将数据模型和UI定义为XML,而在客户端呈现它所需的只是Web浏览器。我假设该事件将被提交给远程服务器,这使得Web浏览器成为一种自然选择。
这将使您能够根据用户想要报告的体育赛事类型在服务器上生成UI,这样您就可以轻松添加新表单,修复错误等,而无需更新客户端软件。
顺便说一下,我不了解您对使用XML的担忧。在我看来,这是一个可行的用例选择。