How to keep logic out of a JSP?
本问题已经有最佳答案,请猛点这里访问。
我需要在JSP中构建一个表。我有一个包含大量bean的arraylist,bean是从resultset生成的,只是从db调用返回的行中生成的。
根据数据,我想展示不同的东西。例如,如果be an中的名称以"a"开头,则突出显示该名称;如果名称以"b"开头,则使该名称变为红色,但不突出显示(我认为这涵盖了我的问题/情况)。
如果我在JSP中没有逻辑,我如何控制它?
这样做的一个方法是编写一个函数,该函数位于bean类中,或者更适合于bean类的包装器中:
1 2 3 4 5 6 7 8 9 10 11 12 | public class BeanFormatter { private Bean bean; public BeanFormatter(Bean myDataBean) { this.bean = myDataBean; } public String getFormattedHTML() { //put your logic here. Return the necessary HTML based on the bean. } } |
您可能希望返回的不是字符串格式的HTML,而是要包装数据的DIV名称或其他CSS类。但您可以编写另一种方法,如
实际上,在逻辑这个词下你是什么意思?您描述的内容与显示逻辑相关,允许将此类逻辑放入JSP文件中。大多数JSTL标记都是为这个工作设计的。如果您是指业务逻辑,Java类(EJB、Spring Bebean或简单类)是其良好设计的唯一地方(甚至不在servlet /控制器中,这对于控制逻辑来说更好)。
如果您需要在视图上有一些特殊的行为,并且想要保持干净的JSP,您应该考虑创建新的标记。你应该知道有几种不同的标签。因为您的标记负责创建可视组件,所以我建议您使用标记文件。
查看本教程以了解其工作原理。
您可以创建一个"translator"对象,该对象有一个(或多个)方法接受bean,并返回格式化的HTML。