El表現関連

2341 ワード

久しぶりにブログを書きました。大学時代のノートを整理します。
1無効EL式
Ajspで禁止されているel表現は、isELIgnore=「true」というjspコマンドを使っていますので、大きさに注意して書いてください。
<%@ page isELIgnored="true" %>
<%
    pageContext.setAttribute("hello", "Hello World");
%>
${hello}
Bはweb.xmlで禁止されています。
<jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>true</el-ignored>
        </jsp-property-group>
    </jsp-config>
Cはweb.xmlのバージョンを2.3に変更しました。ELは2.4以降です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
参考文献:http://blog.sina.com.cn/s/blog_406127500100 azhi.
2 Elの中のemptyとnullの違い
<%@page pageEncoding="utf-8" %><br>name:${param.name }<br />  
empty    : ${empty param.name }<br />  
==null    :${param.name == null }
nameパラメータがないならemptyはture、nullはtrueです。
nameパラメータがありますが、入力が空ならemptyはtrue、nullはfalseです。
emptyはelで「」とnullの処理は全部trueに戻ります。==nullは「」にfalseを返して、nullに対してtrueに戻ります。
3 EL式の暗黙のオブジェクト
EL式は11個の隠れたオブジェクトを定義しており、この11個のオブジェクトを使ってsession、cookie、HttpHeader、ユーザーがフォーム(param)などを提出するのに便利です。

  • application Scape
    アプリケーション範囲内のscoped変数からなる集合
    Cookie
    すべてのクッキーからなる集合
    ヘッド
    HTTP要求ヘッダ、文字列
    header Values
    HTTP要求ヘッダ、文字列セット
    init Param
    すべてのアプリケーションのパラメータ名からなるセット
    pageContext
    現在のページのjavax.servlet.jsp.PageContextオブジェクト
    pageSchope
    ページ範囲内のすべてのオブジェクトの集合
    Param
    すべての要求パラメータ文字列からなるセット
    paramValues
    すべての文字列セットの要求パラメータ
    request Scrope
    すべての要求範囲のオブジェクトの集合
    session Scrope
    すべてのセッション範囲のオブジェクトのセット
      どのようにheaderの値とパラメータの中の値を隠すオブジェクトを使用しますか?

  • ${header[host]}
    ここでHTTP接続ヘッドのhost値を取得します。
    ${header[accept]}
     ここでHTTPヘッダのaccept値を取得します。
    ${header[user-agent]}
     ここでHTTPヘッダのuser-agent値を取得します。
    ${param}
     myname
    ${param.name} 
     myname
    ${param[alies]
     now.net.cn
    ${param.alies}
     now.net.cn
     
  • 参考文献:http://ks.cn.yahoo.com/question/1590000738259.html
    まとめてみます。elはjstlの基礎です。主にjstlの書き方を熟知しています。