【发布时间】:2015-08-14 16:35:57
【问题描述】:
我正在尝试将 Java 字符串作为 JavaScript 函数的参数传递。是的,我知道 Java 和 JavaScript 不一样,但我在 .jsp 中使用了 scriplets。
我需要一种方法来访问此 JavaScript 函数中动态创建的 java Scriplet 对象 (componentTypePK)。我认为最好的方法是将 Java Scriplet 对象传递给 JavaScript 函数,但我收到了下面描述的错误。
这是我的 JavaScript 函数:
<script LANGUAGE="JavaScript">
function showFormsInUse(componentTypePk){
window.open('/showFormsInUse.do?<%="documentTypePk="+request.getParameter("documentTypePk")+"programAreaPk="+request.getParameter("programAreaPk")+"ComponentTypePK="+componentTypePk');
}
</script>
这里是我调用 JavaScript 函数的地方,它传入一个 Java 字符串作为参数。
<% if(getOppList(context,componentType.getString("ComponentDef_pk")).length()>1){%>
<TD CLASS="ListCode">
<IMG onclick="showFormsInUse(<%=componentType.getString("ComponentDef_pk")%>)" SRC="images/check.gif" TITLE="<%=getOppList(context,componentType.getString("ComponentDef_pk"))%>" WIDTH="16" HEIGHT="15" BORDER="0">
</TD>
<% }else{%>
<TD CLASS="ListCode">
<IMG SRC="images/check.gif" TITLE="<%=getOppList(context,componentType.getString("ComponentDef_pk"))%>" WIDTH="16" HEIGHT="15" BORDER="0">
</TD>
<%}%>
我不希望在我的脚本之前初始化 Java 字符串,然后将该字符串传递给 Javascript 变量 this。我也知道Java Scriplets are bad form,所以我很想知道我是否可以使用 JSTL 来解决这个问题。
更新:当我尝试运行和编译此代码时,我得到以下信息:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 77 in the jsp file: /documentForms.jsp
Invalid character constant
74:
75: <script LANGUAGE="JavaScript">
76: function showFormsInUse(componentTypePk){
77: window.open('/showFormsInUse.do?<%="documentTypePk="+request.getParameter("documentTypePk")+"programAreaPk="+request.getParameter("programAreaPk")+"ComponentTypePK="+componentTypePk');
78: }
79: </script>
总而言之,有没有办法将 Java 对象传递给 JavaScript 函数?
【问题讨论】:
标签: javascript java jsp jstl