我需要在 JSP 中建立一个表。我有一个带有一堆 bean 的数组列表,这些 bean 是由结果集制成的,只是从 DB 调用返回的行中。
根据数据,我想展示不同的东西。一个例子是,如果 bean 中的名称以“a”开头,则突出显示该名称,如果它以“b”开头,则将名称设为红色但不突出显示(我认为这涵盖了我的问题/情况)。
如果我在 JSP 中没有逻辑,我将如何控制它?
一种方法是编写一个存在于 bean 类中的函数,或者更准确地说是在 bean 类的包装器中:
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 类。但您可以编写另一种方法,例如getDisplayCSSClass()
.
如果您需要查看某些特殊行为,并且想要保持干净的 JSP,您应该考虑创建新标签。您应该知道有几种不同的标签。而且因为您的标签负责创建可视组件,所以我建议使用标签文件。
查看本教程以了解其工作原理。
实际上,你在逻辑这个词下是什么意思?您所描述的事情涉及显示逻辑,可以将这种逻辑放入jsp文件中。大多数 JSTL 标记都是为这项工作而设计的。如果您的意思是业务逻辑,Java 类(ejb、spring bean 或简单类)是其在良好设计中的唯一位置(即使不是在更适合控制逻辑的 servlet/控制器中)
您可以创建一个“翻译器”对象,该对象具有一个(或多个)采用 bean 的方法,并返回格式化的 HTML。