如何在JSP标签属性内调用JavaScript函数

时间:2018-07-11 09:15:53

标签: javascript jsp jstl el

我有一个名为 urlStat 的自定义标记属性,该属性具有动态值,因此我创建了一个专用于确定属性值的函数,如下所示:

function getTag() {
            console.log("-------------SUCCESS---------------");
            var questionId = ${question.idQuestion};
            var values = {};
            <c:forEach var="item" items="${tags}">
                values['${item.key}'] = '${item.value}';
            </c:forEach>

            return values[questionId];
        }

Ps:标签是地图。

然后我在属性 urlStat 中调用了该方法:

<ser:page headerAff="true" navAff="true" footerAff="false"
urlStat= "getTag()">

但是代码没有执行,我什至在控制台视图中都看不到成功消息。

此解决方案出了什么问题?

我还尝试直接从属性中读取值:

urlStat= "${ tags.[question.idQuestion] }" 

但是我收到EL解析错误。

1 个答案:

答案 0 :(得分:1)

原因是由于浏览器或应用程序不知道属性getTag()的含义,因此无法确保执行urlStat方法

<ser:page headerAff="true" navAff="true" footerAff="false"
urlStat= "getTag()">

如果要执行此操作,可以更改为以下代码:

<ser:page headerAff="true" navAff="true" footerAff="false">
   <script type="text/javascript">
    getTag();
   </script>
</ser:page>