for:IBM Websphere应用程序服务器6.1中的每个循环

时间:2011-05-03 13:12:04

标签: jsp foreach websphere java-5

我开发了一个Web应用程序并使用Netbeans 6.9创建了war文件。我在jsp和java文件中广泛使用了Java 5的功能。在查看包含for:每个循环的jsp页面的部署之后,我收到错误消息,说明了

'for each' statements are only available if source level is 5.0

我读过WAS6.1支持Java5功能。还检查了java / bin中的jdk版本,它是IBM jdk 1.5。

我也尝试了this page中给出的说明。我怀疑是否有任何设置要做,同时创建war文件以使部署与Java 5兼容。或者在IBM WAS控制台中是否有任何服务器/应用程序级别设置?

1 个答案:

答案 0 :(得分:2)

正如您所发现的,问题是WAS 6.1 JSP engine基于JSP 2.0(针对Java 1.3)。我假设你找到了正确的参数:

  

<强> jdkSourceLevel

     

这个JSP引擎参数是   在WebSphere Application中引入   服务器版本6.1支持JDK 5。   应该使用此参数   的compileWithAssert参数,   虽然编译WithAssert仍然   适用于6.1版。默认   此参数的值为13.此   参数需要再生   Java源码。以下是   jdkSourceLevel参数值:

     
      
  • 13 (默认) - 此值将禁用所有新语言功能   JDK 1.4和JDK 5.0。
  •   
  • 14 - 此值将允许使用断言工具和将   禁用所有新语言功能   JDK 5.0。
  •   
  • 15 - 此值将允许使用断言工具和所有   JDK 5.0的新语言功能。
  •   

我假设您已使用正确的案例在the right place中设置此项并重新启动服务器。如果这会影响JSP引擎,我还会检查你的web.xml declares the Servlet 2.4 schema。如果做不到这一点,请检查支持网站是否有修复。

如果所有其他方法都失败,您应该可以使用JspBatchCompilerAnt task预编译JSP。


我会问你为什么要使用scriptlet,但这是一个不同的对话。