コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Java EE 7のEL 3.0を少しだけ試してみた

Java EE 7の中ではバッチと、EL 3.0に期待していました。
実装が出たら試そうと思っていて、Eclipse 4.3というより、GlassFish 4.0が出たのでEL 3.0を少しだけ使ってみました。

最初に確認したのは、web.xmlで、このバージョンからはとうとうsunがなくなりました。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">
</web-app>

ところでEclipse 4.3でJava EE 7対応と謳っているようですが、ELの補完や構文チェックはまだ全然の模様です。
f:id:kuwalab:20130630181533p:plain
f:id:kuwalab:20130630181621p:plain
この辺りはいつものEclipseクオリティなので意に介していません(達観)

さて、実際に書いたコードは以下のJSPだけです。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>あいうえお</title>
 </head>
<body>
<c:set var="name" value="kuwalab" />
${'こんにちは、わたしは' += name += 'です'}<br>
3 + 4 = ${((x, y) -> x + y)(3, 4)}<br>
</body>
</html>

EL 3.0の仕様の例から取ってきて動かしていますが、

${'こんにちは、わたしは' += name += 'です'}

これはちょっときもい構文だなあと。

あと、他のEL 3.0の新機能で気になるのはstaticメソッドやフィールドで、実際に試してみたのですがうまく動かせていません。
Lambda式も動くようになって、ELで色々できるようになったのはいいのですが複雑さという面と、皆が読み書きできるようにと考えると結構大変かなあという感じです。