我有以下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&#39;中定义的函数keywords
来填充getKeywordsMetatag()
元标记的内容。
但这不起作用,我收到以下错误:
当未指定默认命名空间时,函数getKeywordsMetatag必须与前缀一起使用
我是JSP的新手,所以我尝试了很多事情但没有成功。
我在这里做错了什么?
让我感到困扰的是函数getScriptContent()
完美有效,在html页面中转储javascript代码。为什么getScriptContent()
有效但getKeywordsMetatag()
无效?
谢谢!
答案 0 :(得分: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>