【问题标题】:Line of JSP code causes text to appear as hyperlink in one place but palin text in another place一行 JSP 代码导致文本在一个地方显示为超链接,但在另一个地方显示为纯文本
【发布时间】: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" %>

如果我在&lt;c:set var="label" value="vehicle.select" /&gt; 下方添加&lt;c:set var="explanation" value="vehicle.cc.electric" /&gt;,它会按我的意愿显示,而不是看起来像超链接。这是怎么做到的?

其他信息 我注意到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 时,&lt;c:set var="explanation" value="vehicle.cc.electric" /&gt; 可以根据需要显示。我不确定id 的目的是什么。我对jsp 完全陌生,因此我们将不胜感激任何信息/帮助。

【问题讨论】:

  • &lt;c:set&gt; 只是设置了一个要在其他地方使用的变量(大概在 textbox.jsp 和 listbox.jsp 中),所以我们需要看看如何在这些地方使用“解释”。
  • 嗨@Thomas 刚刚为我的问题添加了一些额外的细节。
  • “当我删除 id 时,我让它按需要显示” - 原因可能是某些 CSS 或 JavaScript 正在根据 id 更改样式,如果它缺少标签,则不会不再匹配。尝试更改 id 而不是删除它。这应该具有相同的效果。
  • 是的,没错。我不愿意更改id,因为我可以看到大量其他对textbox.jsp 的引用。一种选择是创建一个新变量。例如electric。然后我将拥有&lt;c:set var="electric" value="vehicle.cc.electric" /&gt; 并将其添加到textbox.jsp&lt;c:if test="${!empty electric}"&gt; &lt;div class="additional-info"&gt; &lt;spring:message code="${electric}" /&gt; &lt;/div&gt; &lt;/c:if&gt;。这会是最好的选择吗?
  • 取决于 textbox.jsp 在做什么。这可能是一个糟糕的抽象情况,它已经在咬你了。这可能是一种选择,另一种可能是为 id 提供覆盖,第三个可能更好的选择可能是创建 textbox.jsp 的副本并使用您需要的内容。

标签: java jsp


【解决方案1】:

解决此问题的选项是:

  1. 创建一个新变量。例如electric。然后有 &lt;c:set var="electric" value="vehicle.cc.electric" /&gt; 并将其添加到 textbox.jsp:
<c:if test="${!empty electric}">
    <div class="additional-info">     
        <spring:message code="${electric}" /> 
    </div>
</c:if>
  1. 为 id 提供覆盖

  2. 创建一个 textbox.jsp 的副本,然后使用您需要的内容。

我选择了选项 1。

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多