2010-03-29 50 views
2

工作不考虑以下portlet代码:项目价值的Portlet

ArrayList nameList = new ArrayList(); 
nameList.add("Willi Willisch"); 
nameList.add("Seppi Seppisch"); 

renderRequest.setAttribute("names", nameList); 

而且下面的JSP代码:

<c:forEach var="aName" items="${names}"> 
    <tr> 
     <td>${aName} </td> 
    </tr> 

</c:forEach> 

打印出:

${aName} 
${aName} 

我没有任何线索为什么$(aName)没有被评估。 forEach循环的作品,因为$ {aName}被打印出两次....

+0

出于兴趣,''做什么? – skaffman 2010-03-29 07:23:27

+0

''有效!但是不应该'$ {aName}'工作吗? – 2010-03-29 07:31:04

回答

4

<c:out value="${aName}"/>作品!但是不应该${aName}工作?

因此,“模板文本中的EL”不起作用?这可能具有以下一个或多个原因:

  1. 有问题的应用程序服务器不支持JSP 2.0。
  2. web.xml未声明为Servlet 2.4或更高版本。
  3. @page配置为isELIgnored=true
  4. web.xml配置为<el-ignored>true</el-ignored><jsp-config>

要解决一个或其他,显然这样做:

  1. 升级服务器或使用JSTL c:out,而不是与它生活。
  2. 最好将web.xml声明为appserver支持的最新Servlet API版本。
  3. 删除isELIgnored=true属性。
  4. 删除<el-ignored>true</el-ignored>条目。