【发布时间】:2021-11-03 14:11:21
【问题描述】:
我在jsp 中有这个:
<% include file="../../common.jsp %>
<!-- engine size -->
<c:set var="maxLength" value="4" />
<c:set var="cssClass" value="input-text small vehicle vehicleCc vehicleSearch modelSearch" />
<c:set var="path" value="vehicle.cc" />
<c:set var="label" value="vehicle.cc" />
<c:set var="explanation" value="vehicle.cc.electric" />
<c:set var="help" value="whatsthis.cc" />
<c:set var="helpLink" value="car.cc.link" />
<%@ include file="../../common/fieldrows/textbox.jsp %>
...
属性vehicle.cc.electric 具有值if electric, enter 0 当我运行我的应用程序并通过浏览器访问引擎大小区域时,会显示正确的消息,但它显示为超链接,但单击时不会带您到任何地方。
在同一个文件的下方,我有以下内容:
...
<!-- list cars -->
<c:set var="cssClass" value="largest carList" />
<c:set var="path" value="carList" />
<c:set var="label" value="vehicle.select" />
<c:set var="explanation" />
<spring:message code="label.matching.vehicles" />
</c:set>
<%@ include file="../../common/fieldrows/listbox.jsp" %>
如果我在<c:set var="label" value="vehicle.select" /> 下方添加<c:set var="explanation" value="vehicle.cc.electric" />,它会按我的意愿显示,而不是看起来像超链接。这是怎么做到的?
其他信息
我注意到textbox.jsp 包含以下内容:
<div class="additional-info" id="informaion">
<spring:message code="${explanation}" />
</div>
listbox.jsp 稍有不同,它不包含id 字段:
<div class="additional-info">
<spring:message code="${explanation}" />
</div>
当我从textbox.jsp 中删除id 时,<c:set var="explanation" value="vehicle.cc.electric" /> 可以根据需要显示。我不确定id 的目的是什么。我对jsp 完全陌生,因此我们将不胜感激任何信息/帮助。
【问题讨论】:
-
<c:set>只是设置了一个要在其他地方使用的变量(大概在 textbox.jsp 和 listbox.jsp 中),所以我们需要看看如何在这些地方使用“解释”。 -
嗨@Thomas 刚刚为我的问题添加了一些额外的细节。
-
“当我删除
id时,我让它按需要显示” - 原因可能是某些 CSS 或 JavaScript 正在根据 id 更改样式,如果它缺少标签,则不会不再匹配。尝试更改 id 而不是删除它。这应该具有相同的效果。 -
是的,没错。我不愿意更改
id,因为我可以看到大量其他对textbox.jsp的引用。一种选择是创建一个新变量。例如electric。然后我将拥有<c:set var="electric" value="vehicle.cc.electric" />并将其添加到textbox.jsp:<c:if test="${!empty electric}"> <div class="additional-info"> <spring:message code="${electric}" /> </div> </c:if>。这会是最好的选择吗? -
取决于 textbox.jsp 在做什么。这可能是一个糟糕的抽象情况,它已经在咬你了。这可能是一种选择,另一种可能是为 id 提供覆盖,第三个可能更好的选择可能是创建 textbox.jsp 的副本并使用您需要的内容。