パッケージ org.opengion.hayabusa.taglib

## クラス QRcodeTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.QRcodeTag

- すべての実装されたインタフェース:
    `Serializable`, `javax.servlet.jsp.tagext.BodyTag`, `javax.servlet.jsp.tagext.IterationTag`, `javax.servlet.jsp.tagext.JspTag`, `javax.servlet.jsp.tagext.Tag`, `javax.servlet.jsp.tagext.TryCatchFinally`

      public class QRcodeTag
      extends CommonTagSupport

  QRコードに対応したイメージファイルを作成するタグです。 QRコードで表示できる文字数は、バージョン、エンコードモード、エラー訂正レベル に依存します。 また、イメージの大きさは、文字数と１セル辺りのピクセルに依存します。 fileURLは、通常、システムリソースのFILE_URL(=filetemp)なので、fileURL="{@USER.ID}" と するのが一般的です。 ファイル名は、初期値:rqcode ですが、拡張子はimageType(初期値:PNG)を小文字化して追加します。 拡張子が付いている場合は、そのまま使用されます。 また、同一ファイル名の場合、ブラウザキャッシュのため、画像が更新されないことがあるため imgタグのsrc属性に、キャッシュの無効化のための引数を追加しています。
  関連項目:
    直列化された形式
  変更履歴:
    7.2.1.0 (2020/03/13) 新規作成
  機能分類
    画面表示
  形式サンプル:
    ●形式：<og:qrCode fileURL="{@USER.ID}" > エンコードする文字列 </og:qrCode > ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) または、 ●形式：<og:qrCode value="エンコードする文字列" /> ●Tag定義： <og:qrCode value 【TAG】エンコードする文字列(または、BODY部に記述) version 【TAG】バージョン (2から40の整数)(初期値:5) encodeMode 【TAG】エンコードモード('N':数字モード 'A':英数字モード　'B':8bit byteモード)(初期値:B) errCorrect 【TAG】エラー訂正レベル ('L','M','Q','H')(初期値:M) imageType 【TAG】イメージファイル形式(PNG/JPEG)(初期値:PNG) pixel 【TAG】１セル辺りの塗りつぶしピクセル(初期値:3) fileURL 【TAG】QRイメージファイルを出力するディレクトリ(初期値:FILE_URL) filename 【TAG】QRイメージファイル名 (初期値:rqcode) textEncode 【TAG】byteモード時のテキスト文字エンコード(初期値:Charset.defaultCharset()) 7.2.3.0 (2020/04/10) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) > ... Body ... </og:qrCode>
  バージョン
    7.2
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK11.0,

- - ### フィールドの概要

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `QRcodeTag()` | デフォルトコンストラクター

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `int` | `doAfterBody()` | Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
    `int` | `doEndTag()` | Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` | Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` | タグリブオブジェクトをリリースします。
    `void` | `setEncodeMode​(String mode)` | 【TAG】エンコードモード('N':数字モード 'A':英数字モード　'B':8bit byteモード)を指定します(初期値:B)。
    `void` | `setErrCorrect​(String crct)` | 【TAG】エラー訂正レベル ('L','M','Q','H')を指定します(初期値:M)。
    `void` | `setFilename​(String fname)` | 【TAG】QRイメージファイル名をセットします(初期値:rqcode)。
    `void` | `setFileURL​(String url)` | 【TAG】 QRイメージファイルを出力するディレクトリを指定します(初期値:FILE_URL)。
    `void` | `setImageType​(String type)` | 【TAG】イメージファイル形式(PNG/JPEG)を指定します(初期値:PNG)。
    `void` | `setPixel​(String px)` | 【TAG】１セル辺りの塗りつぶしピクセルを指定します(初期値:3)。
    `void` | `setTextEncode​(String txtEnc)` | 【TAG】byteモード時のテキスト文字エンコードをセットします(初期値:環境依存)。
    `void` | `setValue​(String val)` | 【TAG】エンコードする文字列(または、BODY部に記述)を指定します。
    `void` | `setVersion​(String ver)` | 【TAG】バージョン (2から40の整数)を指定します(初期値:5)。
    `String` | `toString()` | このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### コンストラクタの詳細

    - #### QRcodeTag

          public QRcodeTag()

      デフォルトコンストラクター
      変更履歴:
        7.2.1.0 (2020/03/13) 新規作成

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `javax.servlet.jsp.tagext.Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示( EVAL_BODY_BUFFERED )

    - #### doAfterBody

          public int doAfterBody()

      Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
      定義:
        `doAfterBody` インタフェース内 `javax.servlet.jsp.tagext.IterationTag`
      オーバーライド:
        `doAfterBody` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `javax.servlet.jsp.tagext.Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:
        7.2.3.0 (2020/04/10) textEncode byteモード時のテキスト文字エンコード追加

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:
        7.2.3.0 (2020/04/10) textEncode byteモード時のテキスト文字エンコード追加

    - #### setValue

          public void setValue​(String val)

      【TAG】エンコードする文字列(または、BODY部に記述)を指定します。
      パラメータ:
        `val` - エンコードする文字列(または、BODY部に記述)
      説明:
        エンコードする文字列のバイト数は、バージョン、エンコードモード、エラー訂正レベルに依存します。 また、イメージの大きさは、それらプラス１セル辺りのピクセルも影響します。

    - #### setVersion

          public void setVersion​(String ver)

      【TAG】バージョン (2から40の整数)を指定します(初期値:5)。
      パラメータ:
        `ver` - バージョン
      説明:
        エンコードする文字列のバイト数は、エラー訂正レベル、バージョン に依存します。 文字列のバイト数を増やす場合は、バージョンを適切に設定します。

    - #### setEncodeMode

          public void setEncodeMode​(String mode)

      【TAG】エンコードモード('N':数字モード 'A':英数字モード　'B':8bit byteモード)を指定します(初期値:B)。
      パラメータ:
        `mode` - エンコードモード
      説明:
        エンコードする文字列の種類に応じて設定します。 日本語等を含む場合は、'B':8bit byteモード にしてください。

    - #### setErrCorrect

          public void setErrCorrect​(String crct)

      【TAG】エラー訂正レベル ('L','M','Q','H')を指定します(初期値:M)。
      パラメータ:
        `crct` - エラー訂正レベル
      説明:
        エンコードする文字列のバイト数は、エラー訂正レベル、バージョン に依存します。 通常、初期値のままで問題ありません。

    - #### setImageType

          public void setImageType​(String type)

      【TAG】イメージファイル形式(PNG/JPEG)を指定します(初期値:PNG)。
      パラメータ:
        `type` - イメージファイル形式
      説明:
        QRコードのイメージファイルの形式を指定します。 拡張子は自動的にイメージファイル形式(の小文字)がセットされます。

    - #### setPixel

          public void setPixel​(String px)

      【TAG】１セル辺りの塗りつぶしピクセルを指定します(初期値:3)。
      パラメータ:
        `px` - ピクセル数
      説明:
        QRコードのイメージファイルの形式を指定します。 拡張子は自動的にイメージファイル形式(の小文字)がセットされます。

    - #### setFileURL

          public void setFileURL​(String url)

      【TAG】 QRイメージファイルを出力するディレクトリを指定します(初期値:FILE_URL)。
      パラメータ:
        `url` - 保存先ディレクトリ名
      関連項目:
        `SystemData.FILE_URL`
      説明:
        この属性で指定されるディレクトリに、QRイメージファイルをセーブします。 指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、 ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、 FILE_URL 属性で指定のフォルダの下に、フォルダを作成します。 初期値は、FILE_URL になるため、通常は{@USER.ID}を指定する必要があります。

    - #### setFilename

          public void setFilename​(String fname)

      【TAG】QRイメージファイル名をセットします(初期値:rqcode)。
      パラメータ:
        `fname` - ファイル名
      説明:
        ファイルを作成するときのファイル名をセットします。 ファイル名の拡張子は、imageType属性の小文字を追加します。 拡張子付きで指定した場合(ファイル名に、ピリオドを含む場合)は、 そのままの値を使用します。

    - #### setTextEncode

          public void setTextEncode​(String txtEnc)

      【TAG】byteモード時のテキスト文字エンコードをセットします(初期値:環境依存)。
      パラメータ:
        `txtEnc` - テキスト文字エンコード
      変更履歴:
        7.2.3.0 (2020/04/10) textEncode byteモード時のテキスト文字エンコード追加
      説明:
        ﾃｷｽﾄのｴﾝｺｰﾄﾞの指定がない場合は、プラットフォーム依存のデフォルトの Charset です。 java.nio.charset.Charset#defaultCharset() QRｺｰﾄﾞで、機種依存文字(①など)は、Windows-31J を指定しても読み取り側が対応していません。 その場合は、UTF-8 を指定します。(必要なﾊﾞｲﾄ数は当然増えます) 通常、何も指定しないか、UTF-8 を指定するかのどちらかになります。

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      このメソッドは、nullを返しません