« JFreeChartを使用したサンプルプログラム | トップページ | JSP にて Servlet で設定された値を利用する。 »

2011年1月19日 (水)

JSPにてJavaで宣言したenum定数を利用する

① 定数クラスを作成(enumを使用)

package common;

public class FixedValues {

/**
  * エラーレベル
  * 通常:NORMAL(0)
  * 警告:WARNING(1)
  * 異常:ERR(9)
  * @author yamamoto
  *
  */
public enum ERRLEVEL{
  NORMAL(0) ,
  WARNING(1) ,
  ERR(9) ;

  ERRLEVEL(final int level){
   intValue = level ;
  }

  // enum定数から整数へ変換
     public int getIntValue() {
         return intValue;
     }

     // 整数からenum定数へ変換
     public static ERRLEVEL valueOf(final int anIntValue) {
         for (ERRLEVEL d : values()) {
             if (d.getIntValue() == anIntValue) {
                 return d;
             }
         }
         return null;
     }
  private int intValue;
}
}

②エラーBeanを作成する

package beans;

import common.FixedValues;

/**
  * エラー情報Bean<br>
  *   エラーID、エラーメッセージ、エラーレベルを所持する
  * @author yamamoto
  *
  */
public class ErrBean {

  /** エラーID */
  private String errid;

  /** エラーレベル */
  private FixedValues.ERRLEVEL errlevel;

  /** エラーメッセージ */
  private String errmsg;

  /**
    * エラーID取得
    * @return エラーID
    */
  public String getErrid() {
  return errid;
  }
  /**
  * エラーID設定
  * @param errid エラーID
    */
  public void setErrid(String errid) {
  this.errid = errid;
  }

  /**
  * エラーレベル取得
  * @return エラーレベル(定数)
  */
  public FixedValues.ERRLEVEL getErrlevel() {
    return errlevel;
  }
  /**
    * エラーレベル設定(数値)
    *  0:Normail、
    *  1:Warning、
  *  9:Err
  * @param errlevel エラーレベル(数値)
    */
  public void setErrlevel(int errlevel) {
    this.errlevel = FixedValues.ERRLEVEL.valueOf(errlevel);
  }
  /**
    * エラーレベル設定(定数)
    * @param errlevel エラーレベル(定数)
    */
  public void setErrlevel(FixedValues.ERRLEVEL errlevel) {
    this.errlevel = errlevel;
  }

  /**
    * エラーメッセージ取得
    * @return エラーメッセージ
    */
  public String getErrmsg() {
    return errmsg;
  }
  /**
    * エラーメッセージ設定
    * @param errmsg エラーメッセージ
    */
  public void setErrmsg(String errmsg) {
    this.errmsg = errmsg;
  }

}

③ JSPで宣言、利用する

<%-- タグライブラリの宣言 --%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%--インポート(errlevelを宣言しているBeansクラスを前もって作成しておく) --%>
<%@ page import="beans.*" %>
<jsp:useBean id="reqErrBean" class="beans.ErrBean" scope="request" />

<%--インポート(enum定数クラスをインポート) --%>
<%@ page import="common.FixedValues" %>

<%-- Beanクラスの値を変数に設定(型 FixedValues.ERRLEVEL ) --%>
<c:set var="plevel" value="${reqErrBean.errlevel}" />

<%--再度宣言しなおす --%>
<c:set var="LEVELNORMAL" value="<%= ERRLEVEL.NORMAL %>" />
<c:set var="LEVELWARNING" value="<%= ERRLEVEL.WARNING %>" />
<c:set var="LEVELERR" value="<%= ERRLEVEL.ERR %>" />
 :
  <c:choose>
    <%-- エラーレベルの比較を行う --%>
    <c:when test="${plevel==LEVELNORMAL}">
      情報
    </c:when>
    <c:when test="${plevel==LEVELWARNING}">
      警告
    </c:when>
    <c:otherwise>
      エラー
    </c:otherwise>
  </c:choose>

宣言しなおすことで、単純な名前(定数)として使用可能となる

« JFreeChartを使用したサンプルプログラム | トップページ | JSP にて Servlet で設定された値を利用する。 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153605/50629567

この記事へのトラックバック一覧です: JSPにてJavaで宣言したenum定数を利用する:

« JFreeChartを使用したサンプルプログラム | トップページ | JSP にて Servlet で設定された値を利用する。 »