0

我们有一个应用程序,用户可以在多个页面上回答多个问题。以保险申请为例。用户会被询问个人详细信息、健康状况等。这些问题会根据之前输入的详细信息随时变化。我们需要在最后创建一个包含用户输入的所有信息的 html 文件。现在,创建这个 html 文件的最佳策略是什么?我可以创建一个带有自定义标签的 jsp 文件,该文件可以显示从 db 中提取的数据。但是我们有两个很多条件问题,它变成了维护的噩梦。另外,如果我使用 eclipse BIRT 或 jasper 报告,它会变得更容易吗?

关于要求的一件好事是,最终页面上的界面应该看起来与问题页面上的界面完全相同。因此,我们可以使用的一种策略是捕获每个页面上输入问题和用户信息的 html,将其保存到数据库并在最后一页检索。我想知道是否有人使用这种策略。

我欢迎任何其他关于如何做到这一点的建议。谢谢!

ps - 我知道这真的不是一个编程问题,但我只是希望听到一些建议。

4

1 回答 1

0

XML 加 XSLT 是动态生成 HTML 的理想选择。您可以将问题和答案直接存储为 XML,或者从您的数据库生成 XML(我还没有这样做,但快速的 Google 显示了许多不同配置的选项)。

如果您的 XML 结构类似于

<questionList>
<question>
<identifier>1</identifier>
<questionText>What is your first name?</questionText>
<hasAnswer>true</hasAnswer>
<answer>Mary</answer>
</question>   
<question>
...
</question>
</questionList>

然后你可以使用

<xsl:for-each select="questionList/question">
<xsl:if test="hasAnswer=='true'">
<span> <xsl:value-of select="questionText"/></span>
<span> <xsl:value-of select="answer"/></span>
</xsl:if>
</xsl:for-each>

这将遍历您的所有问题,并且仅在有答案时才显示它们。您也可以跳过使用“hasAnswer”标签,只测试“answer”是否为空(通过测试“answer”是否不是 ' ',即空字符串),但我更喜欢上面的选项。您可以使用跨度添加您在问题页面中使用的相同 CSS,或者将所有内容放在一个表格中并使用 td 代替 - 它非常灵活。

关于 XSLT 的 w3schools 教程中,您可以阅读如何将 XSLT 样式表附加到 XML 文件,这就像将 CSS 添加到 HTML 一样简单。

当然,我已经在使用 XSLT,如果你喜欢你的锤子,每个问题看起来都像钉子。但我真的认为这是一个简单而轻松的解决方案。

于 2013-04-04T19:06:08.320 回答