Hi,
I've creating the following basic JSP code...
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set value="5" var="x" scope="page"/>
<c:set value="12" var="y" scope="session"/>
<c:set value='${header["accept-language"]}' var="language"/>
<html>
<head>
<title> Question 1 </title>
</head>
<body>
<p>
The value of x is
<c:out value="${x}"/>
The value of y is
<c:out value="${y}"/>
y-x=
<c:out value="${y-x}"/>
<table border="1">
<tr>
<td> HTTP Header Value </td>
<td> Value </td>
</tr>
<tr>
<td><c:out value="${language.key}"/></td>
<td><c:out value="${language.value}"/></td>
</tr>
</table>
</p>
</body>
</html>
However when I try and run the JSP over Tomcat, I get the following error message thrown...
**
type
**
Exception report
**
message
**
**
description
**
The server encountered an internal error () that prevented it from fulfilling this request.
**
exception
**
javax.servlet.ServletException: Unable to find a value for "key" in object of class "java.lang.String" using operator "."
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.tryitout.wp2q1_jsp._jspService(wp2q1_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
**
root cause
**
javax.servlet.jsp.el.ELException: Unable to find a value for "key" in object of class "java.lang.String" using operator "."
org.apache.commons.el.Logger.logError(Logger.java:481)
org.apache.commons.el.Logger.logError(Logger.java:498)
org.apache.commons.el.Logger.logError(Logger.java:611)
org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:340)
org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:899)
org.apache.jsp.tryitout.wp2q1_jsp._jspx_meth_c_out_3(wp2q1_jsp.java:239)
org.apache.jsp.tryitout.wp2q1_jsp._jspService(wp2q1_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
**
note
**
The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
I'm basically trying to declare a variable called language with default scope, set its value to be that of the header parameter 'accept-language' and then output the value of the variable 'language'.
If anybody can help me figure out what I'm doing wrong, I'd be very grateful. Thank you.
JP