クラス IorQueryTag

すべての実装されたインタフェース:
BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, Serializable
直系の既知のサブクラス:
IorUpdateTag

public class IorQueryTag extends CommonTagSupport
IOr (Information Organizer) に接続し、取得したデータベースを表示するタグです。 IOr へデータ取得を要求して受取った JSON形式 の文字列を、DBTableModel にセットします。 IOr から取得したデータより loadFile が優先されます。 このタグの結果(DBTableModel)は、通常の QueryTag と同様に ViewFormTag で一覧表示や、WriteTableTag でファイル出力が可能です。 SystemData の USE_SQL_INJECTION_CHECK が true か、quotCheck 属性が true の場合は、 SQLインジェクション対策用のシングルクォートチェックを行います。リクエスト引数に シングルクォート(')が含まれると、エラーになります。 同様にUSE_XSS_CHECKがtrueか、xssCheck属性がtrueの場合は、 クロスサイトススクリプティング(XSS)対策のためless/greater than signのチェックを行います。 実行後にリクエストパラメータに以下の値がセットされます。 DB.COUNT : 実行結果の件数 DB.ERR_CODE : 実行結果のエラーコード DB.ERR_MSG : 実行結果のエラーメッセージ ※ このタグは、Transaction タグの対象です。
関連項目:
変更履歴:
8.0.2.0 (2021/11/30) 新規作成
機能分類
その他部品
形式サンプル:
●形式: <og:iorQuery url = "http://・・・ " 必須 authURL = "http://・・・ " 必須 authUserPass = "admin:******" 必須 appliName = "データテーブル名" > </og:iorQuery> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:iorQuery url ○【TAG】アクセスする URL を指定します (必須) proxyHost 【TAG】プロキシ経由で接続する場合の、プロキシホスト名を指定します proxyPort 【TAG】プロキシ経由で接続する場合の、プロキシポート番号を指定します timeout 【TAG】通信リンクのオープン時に、指定された秒単位のタイム・アウト値を使用します (初期値:URL_CONNECT_TIMEOUT[=]) authURL ○【TAG】JSONコードで認証するURLを指定します (必須) authUserPass ○【TAG】Basic認証を使用して接続する場合のユーザー:パスワードを指定します (必須) companyId 【TAG】企業IDを指定します appliName ○【TAG】アプリケーションの名前を指定します display 【TAG】接続の結果を表示するかどうかを指定します (初期値:false) saveFile 【TAG】接続の結果をファイルに保存します loadFile 【TAG】ファイルからURL接続結果に相当するデータを読み取ります command 【TAG】コマンド(NEW,RENEW)をセットします scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します (初期値:session) displayMsg 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=]) notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します (初期値:MSG0077[対象データはありませんでした]) stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します (初期値:false[続行する]) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します stopError 【TAG】処理エラーの時に処理を中止するかどうか[true/false]を設定します (初期値:true) dispError 【TAG】エラー時にメッセージを表示するか[true/false]を設定します。通常はstopErrorと併用 (初期値:true) quotCheck 【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK) xssCheck 【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=true]) mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します (初期値:false) useBeforeHtmlTag 【TAG】処理時間(queryTime)などの情報出力[true:有効/false:無効]を指定します (初期値:true) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=]) 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:iorQuery> ●使用例 <og:iorQuery url = "http://・・・ " authURL = "http://・・・ " authUserPass = "admin:******" appliName = "データテーブル名" > <og:iorParam key = "where_lk" value = "{'PN':'{@PN}%','TANI':'{@TANI}'}" /> </og:iorQuery>
導入されたバージョン:
JDK17.0,
  • フィールド詳細

  • コンストラクタの詳細

    • IorQueryTag

      public IorQueryTag()
      デフォルトコンストラクター
  • メソッドの詳細

    • doStartTag

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

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

      public int doEndTag()
      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
      doEndTag インタフェース内 Tag
      オーバーライド:
      doEndTag クラス内 CommonTagSupport
      戻り値:
      後続処理の指示
    • release2

      protected void release2()
      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
      release2 クラス内 CommonTagSupport
    • addParam

      protected void addParam(String key, String val)
      IorQuery オブジェクトに渡すパラメータをマッピングします。 IorParamTag クラスよりセットされます。 但し、以下のキーに対して IorParamTag では指定できません。 company_id、user_id、session_id、report_name、method
      パラメータ:
      key - パラメータキー
      val - パラメータ値
    • checkUsrPw

      protected void checkUsrPw()
      ユーザー:パスワード から ユーザーとパスワードを分割します。
    • setComJson

      protected void setComJson()
      JSON形式の共通要求キーを設定します。 ・company_id : 企業ID ・user_id : ユーザーID ・session_id : セッションID ・report_name : アプリ名 ・method : 登録条件 例:{"company_id":"XXXXX","user_id":"admin","session_id":"$session_id$" …}
    • outJson

      protected String outJson()
      loadFile 指定がある場合は、ファイルからデータを読取ります。 loadFile 指定がない場合は、URLに対して応答結果を取得します。
      戻り値:
      JSON形式の文字列
      このメソッドは、nullを返しません
    • retResponse

      protected String retResponse()
      URLに対して応答結果を取得します。
      戻り値:
      URL接続先のデータ
      このメソッドは、nullを返しません
    • connect

      protected HttpConnect connect() throws IOException
      URLに対して接続を行います。
      戻り値:
      接続オブジェクト
      例外:
      IOException - 入出力エラーが発生したとき
      このメソッドは、nullを返しません
    • getStatus

      protected int getStatus(String strJson)
      IOr の要求結果から、HTTPステータスコード を設定します。
      パラメータ:
      strJson - Json形式の文字列
      戻り値:
      エラーコード
      このメソッドは、nullを返しません
    • getCount

      protected int getCount(String strJson)
      IOr の要求結果から、実行件数 を取得します。
      パラメータ:
      strJson - Json形式の文字列
      戻り値:
      実行件数
      このメソッドは、nullを返しません
    • makeMessage

      protected int makeMessage()
      処理後のメッセージを作成します。
      戻り値:
      エラーコード
      このメソッドは、nullを返しません
    • setUrl

      public void setUrl(String url)
      【TAG】アクセスする接続先URLを指定します。
      パラメータ:
      url - 接続先
      説明:
      接続するURLを指定します。(例:http:// ・・・・・・)
    • setProxyHost

      public void setProxyHost(String host)
      【TAG】プロキシ経由で接続する場合の、プロキシホスト名を指定します。
      パラメータ:
      host - プロキシホスト名
      説明:
      接続先が、プロキシ経由の場合、プロキシのホスト名を指定します。 例:proxy.opengion.org
    • setProxyPort

      public void setProxyPort(String port)
      【TAG】プロキシ経由で接続する場合の、プロキシポート番号を指定します。
      パラメータ:
      port - プロキシポート番号
      説明:
      接続先が、プロキシ経由の場合、プロキシのポート番号を指定します。 例:8080
    • setTimeout

      public void setTimeout(String tout)
      【TAG】接続タイムアウト時間を(秒)で指定します (初期値:URL_CONNECT_TIMEOUT[=])。
      パラメータ:
      tout - タイムアウト時間(秒) (ゼロは、無制限)
      関連項目:
      説明:
      実際には、java.net.URLConnection#setConnectTimeout(int) に 1000倍して設定されます。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま) (初期値:システム定数のURL_CONNECT_TIMEOUT[=])。
    • setAuthURL

      public void setAuthURL(String url)
      【TAG】JSONコードで認証するURLを指定します。
      パラメータ:
      url - JSONコードで認証するURL
      説明:
      JSONコードで認証するURLを指定します。
    • setAuthUserPass

      public void setAuthUserPass(String userPass)
      【TAG】Basic認証を使用して接続する場合のユーザー:パスワードを指定します。
      パラメータ:
      userPass - ユーザーとパスワード (USER:PASSWD形式)
      説明:
      接続時のユーザーとパスワードを、USER:PASSWD 形式で指定します。
    • setCompanyId

      public void setCompanyId(String compId)
      【TAG】企業IDを指定します。
      パラメータ:
      compId - 企業ID
      説明:
      企業IDを指定します。
    • setAppliName

      public void setAppliName(String appName)
      【TAG】アプリケーションの名前を指定します。
      パラメータ:
      appName - データテーブル情報
      説明:
      アプリケーションの名前を指定します。
    • setDisplay

      public void setDisplay(String flag)
      【TAG】接続の結果を表示するかどうかを指定します(初期値:false)。
      パラメータ:
      flag - 結果表示 [true:する/false:しない]
      関連項目:
      説明:
      true で、接続結果を表示します。 false では、何も表示しません(初期値:false) 接続結果を表示する使い方より、admin 画面に接続して、キャッシュクリアするような 使い方が多いと考え、初期値は、false になっています。 display="true" と、saveFile を併用することはできません。
    • setSaveFile

      public void setSaveFile(String file)
      【TAG】接続の結果をファイルに保存します。
      パラメータ:
      file - 保存先ファイル
      関連項目:
      説明:
      接続先のデータを受け取って、ファイルに保存します。 display="true" と、saveFile を併用することはできません。 loadFile が指定されていない時のみ処理を行います。
    • setLoadFile

      public void setLoadFile(String file)
      【TAG】ファイルからURL接続結果に相当するデータを読み取ります。
      パラメータ:
      file - 検索するファイル
      説明:
      主にデバッグ用として使われます。
    • setCommand

      public void setCommand(String cmd)
      【TAG】コマンド (NEW,RENEW)をセットします。
      パラメータ:
      cmd - コマンド (public static final 宣言されている文字列)
      関連項目:
      説明:
      コマンドは、HTMLから(get/post)指定されますので、 CMD_xxx で設定されるフィールド定数値のいづれかを指定できます。
    • setDisplayMsg

      public void setDisplayMsg(String id)
      【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
      パラメータ:
      id - 表示メッセージID
      関連項目:
      説明:
      ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[ 件検索しました] をセットしてください。 表示させたくない場合は, displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。
    • setNotfoundMsg

      public void setNotfoundMsg(String id)
      【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
      パラメータ:
      id - ゼロ件メッセージID
      説明:
      ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0 件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。
    • setStopZero

      public void setStopZero(String flag)
      【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
      パラメータ:
      flag - 0件時停止可否 [true:処理を中止する/false:続行する]
      説明:
      初期値は、false(続行する)です。
    • setTableId

      public void setTableId(String id)
      【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
      パラメータ:
      id - テーブルID (sessionに登録する時のID)
      説明:
      検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
    • setStopError

      public void setStopError(String flag)
      【TAG】処理エラーの時に処理を中止するかどうか[true/false]を設定します(初期値:true)。
      パラメータ:
      flag - エラー時処理中止 [true:中止する/false:中止しない]
      説明:
      false(中止しない)に設定する場合、後続処理では、{@DB.ERR_CODE}の値により、 IOr の異常/正常終了によって分岐処理は可能となります。 初期値は、true(中止する)です。
    • setDispError

      public void setDispError(String flag)
      【TAG】PLSQL/SQL処理エラーの時にエラーを画面表示するか[true/false]を設定します(初期値:true)。
      パラメータ:
      flag - [true:表示する/false:表示しない]
      説明:
      false(表示しない)に設定する場合、後続処理では、{@DB.ERR_MSG}の値により、 本来表示されるはずだったメッセージを取得可能です。 stopErrorと併用して、JSON形式でエラーを返す場合等に利用します。 初期値は、true(表示する)です。 ※false指定の場合は件数や、overFlowメッセージ等も表示されなくなります。
    • setQuotCheck

      public void setQuotCheck(String flag)
      【TAG】リクエスト情報の シングルクォート(') 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_SQL_INJECTION_CHECK[=])。
      パラメータ:
      flag - クォートチェック [true:する/それ以外:しない]
      説明:
      SQLインジェクション対策の一つとして、暫定的ではありますが、SQLのパラメータに 渡す文字列にシングルクォート(') を許さない設定にすれば、ある程度は防止できます。 数字タイプの引数には、 or 5=5 などのシングルクォートを使用しないコードを埋めても、 数字チェックで検出可能です。文字タイプの場合は、必ず (')をはずして、 ' or 'A' like 'A のような形式になる為、(')チェックだけでも有効です。 (') が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 初期値は、SystemData#USE_SQL_INJECTION_CHECK です。
    • setXssCheck

      public void setXssCheck(String flag)
      【TAG】リクエスト情報の HTMLTag開始/終了文字(><) 存在チェックを実施するかどうか[true/false]を設定します (初期値:USE_XSS_CHECK[=])。
      パラメータ:
      flag - XSSチェック [true:する/false:しない]
      関連項目:
      説明:
      クロスサイトスクリプティング(XSS)対策の一環としてless/greater than signについてのチェックを行います。 (><) が含まれていたエラーにする(true)/かノーチェックか(false)を指定します。 (初期値:システム定数のUSE_XSS_CHECK[=])
    • setMainTrans

      public void setMainTrans(String flag)
      【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
      パラメータ:
      flag - メイントランザクションかどうか [true:メイン/false:その他]
      説明:
      この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。
    • setUseBeforeHtmlTag

      public void setUseBeforeHtmlTag(String useTag)
      【TAG】処理時間(queryTime)などの情報出力[true:有効/false:無効]を指定します(初期値:true)。
      パラメータ:
      useTag - 情報出力の有効/無効 [true:有効/false:無効]
      説明:
      Query で、検索する場合に、処理時間(queryTime)などの情報を出力していますが、 ViewForm で、CustomData などの 非HTML表示ビューを使用する場合、データとして、 紛れ込んでしまうため、出力を抑制する必要があります。 true(有効)にすると、これらのHTMLが出力されます。false にすると、出力されません。 初期値は、true(有効) です。
    • setUseTimeView

      public void setUseTimeView(String flag)
      【TAG】処理時間を表示する TimeView を表示するかどうか[true:する/false:しない]を指定します (初期値:VIEW_USE_TIMEBAR[=])。
      パラメータ:
      flag - 処理時間を表示 [true:する/false:しない]
      説明:
      true に設定すると、処理時間を表示するバーイメージが表示されます。 これは、DB検索、APサーバー処理、画面表示の各処理時間をバーイメージで 表示させる機能です。処理時間の目安になります。 (初期値:VIEW_USE_TIMEBAR[=])。
    • toString

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