jsp编译器无法处理 20:18:00,374 ERROR [render_portlet_jsp:154] org.apache.ja-6ren">
gpt4 book ai didi

java - 如何在自定义 jsp 标记内连接 JSP 表达式内的字符串文字

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:31 24 4
gpt4 key购买 nike

我有一个非常奇怪的问题,跟随jsp标签的属性

 <custom:tag onclick="addBid('<%= container_index + "string" %>');" />

jsp编译器无法处理

20:18:00,374 ERROR [render_portlet_jsp:154] org.apache.jasper.JasperException: /WEB-INF/jsp/customers/abcd.jsp(146,107) equal symbol expected
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)

只要在 " '<%= %>' " 周围有双引号, 他们不能再在里面 " '<%= " " %>' "

另一方面,如果它在 html 元素中:

<input id="bid" onclick="addBid('<%= container_index + "string" %>');" />

一切正常

请不要告诉我应该为此使用标签库...:-)

最佳答案

首先在一个JSP中

<%=varName%> 

scriptlet 意思是:用

改变 a) 行
varName.toString()

所以你想输出一个名字未知的变量是很奇怪的。

这就像在 Java 中你会写

String aVariableString = "test String";
System.out.println(aVariable+"String");

这没有意义。

但是我可以根据情况想象出与您的代码类似的代码:

如果只出现一次,我会按以下方式做:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- head, or anything You want -->
<script>
function addBid(){
var bidId = document.getElementById("bidId").value;
// do whatever with bidId
}
</script>

<input type="hidden" id="bidId" value="<c:out value=${containerIndexes[knownIndex]}" />

<custom:tag onclick="addBid();" />

当然通常我们在循环中需要这些数据,所以代码更改:

<c:forEach var="bid" items="${bids}">
<c:out value=${bid.name} /> <custom:tag onclick="addBid(${bid.index});" />
</c:foreach>

并且名称为 bids 的可迭代对象包含 bid 类型的对象,该对象至少具有

getName() 

getIndex() 

方法。

如果您想在 JSP 中附加一个自定义字符串,那么应该可以

<custom:tag onclick="addBid('${bid.index} whatever string you want here');" />

如果我们假设索引为 12,则输出如下:

<whateverCustomTagDoes onClick="addBid('12 whatever string you want here') />

如果您仍想在您的示例中使用 scriptlet(在 JSP 中不推荐使用),并且实际上目的是将字符串附加到现有值(而不是像 JavaScript eval 那样即时构建变量),那么一个答案可能是:

<custom:tag onclick="addBid('<%=container_index%>string');" />

关于java - 如何在自定义 jsp 标记内连接 JSP 表达式内的字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com