我们有一个应用程序,用户可以在多个页面上回答问题的数量。以保险申请为例。用户被问及个人详细信息,健康状况等。这些问题会根据输入的先前详细信息而随时更改。我们需要在最后创建一个单独的html文件,其中包含用户输入的所有信息。现在,创建这个html文件的最佳策略是什么?我可以使用自定义标记创建一个jsp文件,该标记可以显示从db中提取的数据。但是我们有两个有条件的问题,它变成了维护的噩梦。另外,如果我使用eclipse BIRT或jasper报告,它会变得更容易吗?
关于要求的一个好处是,最终页面上的界面看起来应该与问题页面上的界面完全相同。因此,我们可以使用的一个策略是在输入问题和用户信息的每个页面上捕获html,将其保存到db并在最终页面上检索。我想知道是否有人使用此策略。
我欢迎任何有关如何执行此操作的建议。谢谢!
P.S。 - 我知道这不是一个编程问题,但我只是希望听到一些建议。
答案 0 :(得分:0)
XML plus 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”-tag并仅测试“answer”是否为空(通过测试“answer”是否为'',即空字符串),但我更喜欢上面的选项。您可以使用跨度添加在问题页面中使用的相同CSS,或者将所有内容放在表格中并使用td代替 - 它非常灵活。
在the w3schools tutorial on XSLT中,您可以阅读如何将XSLT样式表附加到XML文件,这就像将CSS添加到HTML一样简单。
当然,我已经使用过XSLT,如果你喜欢你的锤子,每个问题看起来都像钉子一样。但我真的认为这是一个简单明了的解决方案。