tomcat6.0中使用$表达试抛出异常

在struts2.0.6+tomcat6.0中使用表达式${list.size()}调用对象方法后抛出jasperException异常
The function size must be used with a prefix when a default namespace is not specified。
不知是哪的问题,请有经验的人能分享你的解决办法。
[b]问题补充:[/b]
由于在公司上网不方便,只有两台公用机器。对你们的解答回复较晚,深感抱歉。
这个list其实就是一个action传到页面上的java.util.List列表,引用的标签库是.这个工程我在1年前做的时候,直接用表达式调用方法是可行的。但如今却无法正常运行了。
改成<%%>标签肯定是可行的,但是成堆的页面里都是这样写的,如果都改就<%%>标签就太浪费时间了。我看struts2的ognl里介绍是可以调用方法的。

${}是EL表达式,和OGNL无关,${obj.name}调用的是obj.getName(),也就是说obj必须有getName()这个方法,显然List没有getSize()这个方法,[code="java"]${fn:length(list)}[/code]可用。

把${list.size()}的上下文贴出来看看。

${fn:length(list)}

这样试试看;
应该先把list的size()取出来,然后再直接应用;

[code="java"]
${list.size()}这样写是不行的,list不是pojo,可以用<%=((List)request.getAttribute("list")).size()%>
[/code]

[quote]${fn:length(list)} [/quote]

这个是JSTL1.1的标准用法; 你以前肯定不是这样用的吧?

bean:size这个标签试一下。

[quote="javaChicken"]${list.size()}[/quote]
EL表达式是遵循getXxxx()的规范,显然List根本没有getSize()