public class RegistryQueryTag extends CommonTagSupport
指定の Windowsレジストリにアクセスするためのタグです(特殊な環境設定が必要です)。
検索した結果は、DBTableModel にセットされるため、
JDBCQuery と同様に、viewタグで表示させることが可能です。
注意1:
通常であれば、以下の2つのルートパス以下のレジストリにアクセスできます。
HKEY_CURRENT_USER/Software/JavaSoft/Prefs
HKEY_LOCAL_MACHINE/Software/JavaSoft/Prefs
注意2:
ルートパスを強制的に変更する為、java.util.prefs.WindowsPreferenceクラスを
直接書き換えた、ogPreferences.jar を用意しています。
これを、tomcat/endorsed フォルダにコピーして使います。
その場合は、
HKEY_CURRENT_USER/Software/Muratec
HKEY_LOCAL_MACHINE/Software/Muratec
以下の2つのルートパス以下のレジストリにアクセスできます。 ●形式:<og:regQuery baseKey="・・・" ・・・ />
●body:なし
●Tag定義:
<og:regQuery
baseKey ○【TAG】検索ベースキーを設定します(HKEY_CURRENT_USER/Software/XXXX の XXXX を指定します)(必須)。
hkeyType 【TAG】HKEY_CURRENT_USER(="user") を読むか、HKEY_LOCAL_MACHINE(="system") を読むかを指定します(初期値:user)。
key 【TAG】検索キーを設定します
value 【TAG】検索バリューを設定します
maxRowCount 【TAG】レジストリの最大検索件数をセットします(初期値:0[無制限])
orderBy 【TAG】検索した結果を表示する表示順をファイル属性名で指定します
maxLevel 【TAG】検索時の最大展開レベル(0は無制限)を指定します(初期値:1)
like 【TAG】キーおよびバリューについて,like 検索を行うかどうか[true/false]を指定します(初期値:false)
tableId 【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します
command 【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)
displayMsg 【TAG】検索結果を画面上に表示するメッセージIDを指定します(初期値:VIEW_DISPLAY_MSG[=])
notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])
overflowMsg 【TAG】オーバーフロー時に画面上に表示するメッセージIDを指定します(初期値:MSG0007)
scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session)
mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false)
debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
/>
●使用例
<og:regQuery debug="false"
command = "NEW" NEW,RENEW が使用できます。
baseKey = "/" 検索時のベースとなるレジストリキー名
key = "driver" 検索したいレジストリキー名(初期値は全件)
value = "Ne" 検索したいレジストリ値(初期値は全件)
maxRowCount = "0" 最大検索件数(0で無制限)
maxLevel = "0" 最大検索階層レベル(0で無制限)
like = "true" true で曖昧検索/false は一致検索
/>
like は、key / value を設定したときのみ有効です。また、key / value を両方同時に設定した場合は、
like 属性は両方に同時に適用されます。| 3.1.0.0 (2003/03/20) Windowsレジストリにアクセスできる、RegistryQueryTag.java を新規に作成。 |
| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"
|
static java.lang.String |
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"
|
BR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE| コンストラクタと説明 |
|---|
RegistryQueryTag()
デフォルトコンストラクター
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
protected java.lang.String |
getTagName()
タグの名称を、返します。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setBaseKey(java.lang.String bkey)
【TAG】検索ベースキーを設定します(HKEY_CURRENT_USER/Software/XXX の XXX をベースとします)。
|
void |
setCommand(java.lang.String cmd)
【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。
|
void |
setDisplayMsg(java.lang.String id)
【TAG】検索結果を画面上に表示するメッセージIDを指定します
(初期値:VIEW_DISPLAY_MSG[=])。
|
void |
setHkeyType(java.lang.String type)
【TAG】レジストリの読み込むルートを[user/system]で指定します(初期値:user)。
|
void |
setKey(java.lang.String ky)
【TAG】検索キーを設定します。
|
void |
setLike(java.lang.String lik)
【TAG】キーおよびバリューについて,like 検索を行うかどうか[true/false]を指定します(初期値:false)。
|
void |
setMainTrans(java.lang.String flag)
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
|
void |
setMaxLevel(java.lang.String lvl)
【TAG】検索時の最大展開レベル(0は無制限)を指定します(初期値:1)。
|
void |
setMaxRowCount(java.lang.String count)
【TAG】レジストリの最大検索件数をセットします(初期値:0[無制限])。
|
void |
setNotfoundMsg(java.lang.String id)
【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
|
void |
setOrderBy(java.lang.String ordr)
【TAG】検索した結果を表示する表示順をファイル属性名で指定します。
|
void |
setOverflowMsg(java.lang.String id)
【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します
(初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
|
void |
setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setValue(java.lang.String val)
【TAG】検索バリューを設定します。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getCommonTagThrowable, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String CMD_NEW
public static final java.lang.String CMD_RENEW
public RegistryQueryTag()
| 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. |
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 CommonTagSupport| 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
| 3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。 |
| 4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel ) |
| 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。 |
| 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。 |
protected void release2()
release2 クラス内 CommonTagSupport| 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 |
| 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 |
| 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。 |
| 5.6.8.2 (2013/09/20) hkeyType 追加 |
public void setTableId(java.lang.String id)
id - テーブルID (sessionに登録する時のID)検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
public void setOrderBy(java.lang.String ordr)
ordr - ソートキー現仕様では、複数のキーを指定することは出来ません。
public void setCommand(java.lang.String cmd)
cmd - コマンド (public static final 宣言されている文字列)コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。
public void setBaseKey(java.lang.String bkey)
bkey - 検索ベースキーレジストリの検索で、HKEY_CURRENT_USER か、HKEY_LOCAL_MACHINE の区別を、hkeyType 属性で付ける事が できるようにしました。昔は、HKEY_CURRENT_USER/Software/ 以下の検索ができていましたが、 今現在は、できなくなっているようです。(または、使い方が間違っているか) そこで、標準(/JavaSoft/Prefs)、/Muratec、/Microsoft だけ、検索できるように、 XXXXPreferencesFactory を作成しました。 詳細は、opengionV6/src/jdk170uXX_WindowsPreference を参照願います。 これにより、従来通りの方法で(制限はかかりますが)レジストリを検索できます。 ベースキー に指定できるのは、"/Muratec" , "/Microsoft" で始まるキーだけです。 それに続く "/" で区切った階層構造も表現可能です。 標準(/JavaSoft/Prefs) は、何も指定しないことで、標準であることを示します。
public void setKey(java.lang.String ky)
ky - 検索キー検索キーを設定します。
public void setValue(java.lang.String val)
val - 検索バリュー検索バリューを設定します。
public void setMaxRowCount(java.lang.String count)
count - 最大件数DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 初期値は、0 は、無制限です。
public void setDisplayMsg(java.lang.String id)
id - 処理結果表示メッセージIDここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して 表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[ 件検索しました] をセットしてください。 表示させたくない場合は, displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。
public void setNotfoundMsg(java.lang.String id)
id - ゼロ件時表示メッセージIDここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0 件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。
public void setOverflowMsg(java.lang.String id)
id - 最大検索数オーバー時メッセージID表示させたくない場合は, overflowMsg = "" をセットしてください。
public void setMaxLevel(java.lang.String lvl)
lvl - 検索時の最大展開レベル0を指定すると、無制限に階層を展開します。 初期値は、1レベルです。
public void setLike(java.lang.String lik)
lik - 曖昧検索を行うかどうか [true:行う/false:行わない]like検索とは、キーの一部の文字を含む場合にマッチしたとして、値を取り出します。 ここでの設定は、キーもバリューも同時に適用されます。また、大文字小文字の区別も行いません。
public void setHkeyType(java.lang.String type)
type - 読み込むルート [user/system]HKEY_CURRENT_USER/Software/XXXX を読む場合は、"user" を、HKEY_LOCAL_MACHINE/Software/XXXX を読む場合は、"system" を指定します。それ以外の指定は、エラーにしています。 ここでの設定は、大文字小文字の区別は行いません。 初期値は、"user"(HKEY_CURRENT_USER) です。
| 5.6.8.2 (2013/09/20) 新規追加 |
protected java.lang.String getTagName()
getTagName クラス内 CommonTagSupportCommonTagSupport.getDocumentLink()| 4.0.0.0 (2005/01/31) 新規追加 |
public void setMainTrans(java.lang.String flag)
flag - メイントランザクションかどうか [true:メイン/false:その他]この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。
| 5.1.6.0 (2010/05/01) 新規作成 |
public java.lang.String toString()
toString クラス内 CommonTagSupportWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.