首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scriptlet变量不会在自定义JSP标记的属性中进行计算

Scriptlet变量不会在自定义JSP标记的属性中进行计算
EN

Stack Overflow用户
提问于 2011-08-09 19:46:37
回答 2查看 3.9K关注 0票数 2

当我点击一个链接时,我正在尝试调用一个JavaScript函数。这个JavaScript函数是在JSP的属性中定义的,我正在尝试将一个scriptlet变量传递给函数。然而,它没有得到评估。守则的有关部分是:

代码语言:javascript
复制
<span>
  <mysecurity:secure_link id='<%="editButton_"+commentUUID%>' entitlement="" 
    actionOnClick="editComment('<%= commentUUID %>');return false;"
    isSurroundedByBrackets="true" enableTitle="" disableLink="<%=disableLink%>">
    <span style="color:#0033BB; font:8pt arial;">
      <bean:message key="button.edit" />
    </span>
   </mysecurity:secure_link>
</span>

IE8在左下角提到一个JavaScript错误。当我右键单击并查看源代码时,生成的HTML是:

代码语言:javascript
复制
onclick="editComment('<%= commentUUID %>');return false;"

因此,<%=commentUUID%>不是在actionOnClick属性中计算的,而是在id属性中成功地计算出来的。

这是怎么引起的,我怎么解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-10 17:08:39

在@BalusC的建议下,最终对我有用的是使用社论(this.id.split(‘_’)1)。正确的工作代码如下:

代码语言:javascript
复制
<span>
  <mysecurity:secure_link id='<%="editButton_"+commentUUID%>' entitlement="" 
      actionOnClick="javascript:editComment(this.id.split('_')[1]);return false;"
      isSurroundedByBrackets="true" enableTitle="" disableLink="<%=disableLink%>">
      <span style="color:#0033BB; font:8pt arial;">
         <bean:message key="button.edit" />
      </span>
  </mysecurity:secure_link>
</span>
票数 1
EN

Stack Overflow用户

发布于 2011-08-09 20:23:10

我不确定<mysecurity:secure_link>是自定义的还是现有的第三方JSP标记库。现代JSP标记通常不计算遗留的scriptlet表达式。您应该更愿意使用EL (Expression Language)

首先,确保commentUUID变量作为页面或请求作用域的属性存储,以便EL可以使用它,如下所示,在预处理servlet

代码语言:javascript
复制
request.setAttribute("commentUUID", commentUUID);

或者在JSP中使用另一个脚本:

代码语言:javascript
复制
<% request.setAttribute("commentUUID", commentUUID); %>

或者在JSP中使用JSTL<c:set>

代码语言:javascript
复制
<c:set var="commentUUID"><%=commentUUID%></c:set>

然后,您可以使用EL访问它,如下所示:

代码语言:javascript
复制
<mysecurity:secure_link actionOnClick="editComment('${commentUUID}');return false;" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7002033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档