0

我有以下 JSP 页面:

<%@page import="com.myPath.JSPHelper"%>
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html> 
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="keywords" content="${jspHelper.getKeywordsMetatag()}">
    </head>
<body>
    <%
        JSPHelper jspHelper = new JSPHelper();
        jspHelper.loadData(request.getAttribute("id").toString()); // load data from database
    %>
    <script type="text/javascript">
       <%=jspHelper.getScriptContent()%>
    </script>
</body>
</html>

我要做的是使用在伴随类“JSPHelper.java”中定义keywords的函数来填充元标记的内容。getKeywordsMetatag()

但这不起作用,我收到以下错误:

当未指定默认命名空间时,函数 getKeywordsMetatag 必须与前缀一起使用

我是 JSP 的新手,所以我尝试了很多事情都没有成功。

我在这里做错了什么?

真正困扰我的是该功能getScriptContent()完美运行,将 javascript 代码转储到 html 页面中。为什么getScriptContent()有效但无效getKeywordsMetatag()

谢谢!

4

1 回答 1

1

我会将 jspHelper 的声明移到第一次使用之上。我也会删除 ${} 语法,但这可能不是必需的。

 <%@page import="com.myPath.JSPHelper"%>
 <%@page language="java" contentType="text/html; charset=ISO-8859-1"
     pageEncoding="ISO-8859-1"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

     <%
         JSPHelper jspHelper = new JSPHelper();
     %>
 <html> 
     <head>
         <meta http-equiv="content-type" content="text/html; charset=utf-8">
         <meta name="keywords" content="<%=jspHelper.getKeywordsMetatag()%>">
     </head>
 <body>
     <%
         jspHelper.loadData(request.getAttribute("id").toString()); // load data from database
     %>
     <script type="text/javascript">
        <%=jspHelper.getScriptContent()%>
     </script>
 </body>
 </html>
于 2013-09-12T17:57:48.350 回答