Re: problem upgrading to JSTL 1.2
On Dec 25, 8:31 pm, Lew <l...@lewscanon.com> wrote:
yishayj...@hotmail.com wrote:
I was not correct to say the first instance works; I think it is just
evaluated as a literal, which avoids the exception but still means a
malfunction. I'll have to inspect the variables more closely and see
why java.Util.List is ever accessed.
java.util.List, surely.
--
Lew
The following jsp (I named it 'master.jsp') is as simple as I've
gotten it.
=====
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="org.apache.struts.action.ActionMessage"%>
<%@ page import="org.apache.struts.action.ActionMessages"%>
<%! public class MyActionMessages extends ActionMessages {
public java.util.Map getMessages() {
return messages;
}
}
%>
<%
MyActionMessages actionMessages = new MyActionMessages();
actionMessages.add("prop1", new ActionMessage("one"));
session.setAttribute("my_action_message_item",
actionMessages.getMessages().get("prop1"));
%>
<html>
<body>
<span>this is a test: ${my_action_message_item.list}</span><br>
</body>
</html>
====
The message I get is:
org.apache.jasper.JasperException: An exception occurred processing
JSP page /views/profiler/master.jsp at line 20
...
root cause
javax.el.PropertyNotFoundException: Property 'list' not readable on
type java.util.List
javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:259)
javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:
209)
javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
org.apache.el.parser.AstValue.getValue(AstValue.java:97)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:
186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImp=
l.java:
923)
org.apache.jsp.views.profiler.master_jsp._jspService(master_jsp.java:
77)
==========
This is after the upgrade (see my opening post). Before upgrade the
list is evaluated in the normal toString fasion. I get:
====
this is a test: [one[]]
====
It might be be struts or jstl, I'm not sure. It also might be bad
coding on our side, but as I've mentioned this is not my worry. My
worry is performing the upgrade with minimal cost, given our perhaps
badly written legacy code.