Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp JSTL:对象存在吗_Jsp_Servlets_Jstl - Fatal编程技术网

Jsp JSTL:对象存在吗

Jsp JSTL:对象存在吗,jsp,servlets,jstl,Jsp,Servlets,Jstl,当使用JSTL构建我的网页时,某些对象可能会传递到JSP视图中,而有些对象可能不会。Java业务逻辑将确定是否需要该对象 在JSP中,检查对象是否已传入的最佳方法是什么。我应该做一个空测试吗?我应该有一个“页面内容”列表,其中包含页面使用的所有对象,并检查对象是否在其中。发送单个对象,IMO,而不是列表,一个实际对象。就我个人而言,我会使用其他方法来指示单个项是否存在,因为逻辑可能比存在或不存在更复杂,例如业务逻辑。这基本上就是演示者模式。那么假设我在处理产品对象?你的意思是我传入一个有hasP

当使用JSTL构建我的网页时,某些对象可能会传递到JSP视图中,而有些对象可能不会。Java业务逻辑将确定是否需要该对象


在JSP中,检查对象是否已传入的最佳方法是什么。我应该做一个空测试吗?我应该有一个“页面内容”列表,其中包含页面使用的所有对象,并检查对象是否在其中。

发送单个对象,IMO,而不是列表,一个实际对象。就我个人而言,我会使用其他方法来指示单个项是否存在,因为逻辑可能比存在或不存在更复杂,例如业务逻辑。这基本上就是演示者模式。

那么假设我在处理产品对象?你的意思是我传入一个有hasProducts标志的Products对象;以及另一个存储任何可能的产品对象的集合成员。然后在我的JSP中,我测试products.hasProducts(),如果是的话,遍历集合?是吗?如果你有一份产品清单,请传递一份清单。如果没有产品,则传递空列表。我指的是整体设计,不是传递很多对象,而是传递一个特定于该视图的对象。好的,我想我明白了。再举一个例子,假设每个产品都有一个联系人。生成的HTML在浏览器中显示为“Contact:Joe Bloggs”。但是,如果一个产品没有联系人,我根本不希望出现该部分。我不想输出“联系人”。因此,在输出标签“contact:”之前,我必须测试是否存在联系人。所以对于那个例子,我会使用一个decorator来包装它,它提供了一个布尔“showContact()”方法,以避免依赖于简单的存在。(可选)使用自定义标记包装支票和标签+值输出。我的目标通常是使以后的视图尽可能简单易读。装饰器只是一个封装另一个类(例如,组合)并添加/修改功能的类。在这种情况下,它可能会提供一个
showContact
方法来确定是否应该使用包装HTML。它还可能有一个
contactForDisplay
方法,其中包括“Contact:[firstName][lastName]”字符串等。不过,有很多方法可以做到这一点。