作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
jsp编译器无法处理 20:18:00,374 ERROR [render_portlet_jsp:154] org.apache.ja-6ren">
我有一个非常奇怪的问题,跟随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/
我是一名优秀的程序员,十分优秀!