001    /*
002     * Copyright (c) 2009 The openGion Project.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013     * either express or implied. See the License for the specific language
014     * governing permissions and limitations under the License.
015     */
016    package org.opengion.hayabusa.taglib;
017    
018    import org.opengion.fukurou.util.StringUtil ;
019    import static org.opengion.fukurou.util.StringUtil.nval ;
020    
021    /**
022     * {@XXXX} 変数の特殊å?ç�?‚’、動çš?�«実行するタグですã?
023     *
024     * こã?タグの目çš??、{@XXXX} 変数の使ã�?–¹をドキュメント化することにありますã?
025     * 通常は、動çš?�ª編é›??ç�?‚’行うå¿?¦�ã?ありませんã€?
026     *
027     * 通常のリクエスト変数は、{@XXXX} で取り出すことが可能ですã?ところがã?
028     * {@SYS.XXXX} 、{@USER.XXXX} 、{@GUI.XXXX}ã€?などのシスãƒ?ƒ 予ç´??
029     * 変数を取りå?すå?合に、XXXX 部åˆ?‚’動的に変更することは出来ませんã€?
030     * こã?タグは、簡易的に、XXXX を引数に取り、動çš?�«取り出すことができるようにしますã?
031     *
032     * @og.formSample
033     * ●形式ï¼?
034     *    <og:requestValue
035     *        sys       = "XXXX"       シスãƒ?ƒ パラメータ の値を取å¾?
036     *        user      = "ID"         UserInfoオブジェクトã?値を取å¾?og:userInfo)
037     *        gui       = "KEY"        GUIInfoオブジェクトã?値を取å¾?
038     *        mem       = "XXXX"       REQUEST_CACHE の値を取å¾?
039     *        lbl       = "XXXX"       ラベルリソースの値を取å¾?
040     *        msg       = "XXXX"       メãƒ?‚»ージリソースの値を取å¾?
041     *        db        = "COUNT"      ãƒ??タベã?ス実行結果を取å¾?
042     *        session   = "XXXX"       session Attribute の値を取å¾?
043     *        date      = "XXXX"       日付関係ã?値を取å¾?
044     *        nvar      = "XXXX"       Unicodeæ–?­—å?の値ã‚?HTML のエスケープ記号(&#xZZZZ;)に変換しますã?
045     *    >
046     * ●body?šなã�?
047     *
048     * ●Tag定義??
049     *   <og:requestValue
050     *       sys                【TAG】{@SYS.XXXX} と同等ã?シスãƒ?ƒ パラメータ の値を取得しまã�?
051     *       user               【TAG】{@USER.XXXX} と同等ã?UserInfoオブジェクトã?値を取得しまã�?
052     *       gui                【TAG】{@GUI.XXXX} と同等ã?GUIInfoオブジェクトã?値を取得しまã�?
053     *       mem                【TAG】{@MEM.XXXX} と同等ã?REQUEST_CACHE の値を取得しまã�?
054     *       lbl                【TAG】{@LBL.XXXX} と同等ã?ラベルリソースの値を取得しまã�?
055     *       db                 【TAG】データベã?ス実行結果を取得しまã�?
056     *       session            【TAG】session Attribute の値を取得しまã�?
057     *       date               【TAG】日付関係ã?値を取得しまã�?
058     *       nvar               【TAG】Unicodeæ–?­—å?の値ã‚?HTML のエスケープ記号(&#xZZZZ;)に変換しまã�?
059     *       debug              【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
060     *   />
061     *
062     *
063     * @og.rev 3.8.0.2 (2005/07/11) 新規作æ?
064     * @og.group 画面部å“?
065     *
066     * @version  0.9.0  2000/10/17
067     * @author   Kazuhiko Hasegawa
068     * @since    JDK5.0,
069     */
070    public class RequestValueTag extends CommonTagSupport {
071            //* こã?プログラãƒ??VERSIONæ–?­—å?を設定しますã?       {@value} */
072            private static final String VERSION = "4.0.0.0 (2007/10/18)" ;
073    
074            private static final long serialVersionUID = 400020071018L ;
075    
076            private String  sys     = null;
077            private String  user    = null;
078            private String  gui     = null;
079            private String  mem     = null;
080            private String  lbl     = null;
081    //      private String  msg     = null;
082            private String  db      = null;
083            private String  session = null;
084            private String  date    = null;
085            private String  nvar    = null;
086    
087            /**
088             * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
089             *
090             * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ージリソース統å�? getResource().getMessage â‡?getResource().getLabel )
091             *
092             * @return      後続å?ç�??æŒ?¤º
093             */
094            @Override
095            public int doEndTag() {
096                    debugPrint();           // 4.0.0 (2005/02/28)
097    
098                    StringBuilder buf = new StringBuilder();
099    
100                    if( sys != null ) {
101                            buf.append( sys( sys.trim() ) );
102                    }
103                    else if( user != null ) {
104                            buf.append( getUserInfo( user.trim() ) );
105                    }
106                    else if( gui != null ) {
107                            buf.append( getGUIInfoAttri( gui.trim() ) );
108                    }
109                    else if( mem != null ) {
110                            buf.append( getRequestCacheData( mem.trim() ) );
111                    }
112                    else if( lbl != null ) {
113                            buf.append( getLabel( lbl.trim() ) );
114                    }
115    //              else if( msg != null ) {
116    //                      buf.append( getMessage( msg.trim() ) );
117    //              }
118                    else if( db != null ) {
119                            buf.append( getRequestParameter( "{@DB." + db.trim() + "}" ) );
120                    }
121                    else if( session != null ) {
122                            buf.append( getSessionAttribute( session.trim() ) );
123                    }
124                    else if( date != null ) {
125                            buf.append( getDateFormat( date.trim() ) );
126                    }
127                    else if( nvar != null ) {
128                            buf.append( StringUtil.getUnicodeEscape( getRequestValue( nvar.trim() ) ) );
129                    }
130    
131                    jspPrint( buf.toString() );
132    
133                    return(EVAL_PAGE);              // ペã?ジの残りを評価するã€?
134            }
135    
136            /**
137             * タグリブオブジェクトをリリースしますã?
138             *
139             * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
140             *
141             */
142            @Override
143            protected void release2() {
144                    super.release2();
145                    sys     = null;
146                    user    = null;
147                    gui     = null;
148                    mem     = null;
149                    lbl     = null;
150    //              msg     = null;
151                    db              = null;
152                    session = null;
153                    date    = null;
154                    nvar    = null;
155            }
156    
157            /**
158             * 【TAG】{@SYS.XXXX} と同等ã?シスãƒ?ƒ パラメータ の値を取得しますã?
159             *
160             * @og.tag
161             * 本来は、シスãƒ?ƒ パラメータ の値を取得できますが、シスãƒ?ƒ çš?�ª共有å?ã‚?
162             * 取得できるように機è?追åŠ?�—てã�?�¾すã?
163             * またã?ユーザー個別にシスãƒ?ƒ パラメータを変更できますã?こã?取得ã?ã€?
164             * シスãƒ?ƒ パラメータとして取得しますã?(値はユーザー個別値を返しますã?)
165             *
166             * SERVER_NAME     こã?Tomcatが実行してã�?‚‹サーバã?å�?            localhost ç­?
167             * SERVER_URL      Portも含ã‚?RLアドレス                          http://localhost:8823/
168             * CONTEXT_URL     実行してã�?‚‹コンãƒ?‚­ストã?URLアドレス          http://localhost:8823/dbdef2/
169             * REAL_PATH       / ルートに対応する物ç�?ƒ‡ィレクトリ             d:/webapps/dbdef2/ ç­?
170             * CONTEXT_NAME    コンãƒ?‚­スト名(webapps 直下ã?仮想フォルãƒ?��)   dbdef ç­?
171             * DATE            YMDH とほぼ同じですがã€?yyyy/MM/dd HH:mm:ss' の形式で取得できますã?
172             * 任æ„?           ユーザーパラメータ(GE16) の値/シスãƒ?ƒ パラメータ(GE12)の値を取å¾?
173             *
174             * {@SYS.COOKIE.カラãƒ?��}で、Cookie の読み込みを行えますã?
175             * 上記以外に、予ç´?ªžや、シスãƒ?ƒ パラメータ の値の読取が可能ですã?
176             *
177             * @param       val キャãƒ?‚·ュするサブキー
178             */
179            public void setSys( final String val ) {
180                    sys = nval( getRequestParameter( val ),sys );
181            }
182    
183            /**
184             * 【TAG】{@USER.XXXX} と同等ã?UserInfoオブジェクトã?値を取得しますã?
185             *
186             * @og.tag
187             * ユーザーパラメータとは異なりますã?
188             *
189             * 以下ã?値は UserInfo オブジェクトã?é ?›®から取得しますã?
190             *
191             * ・JNAME     ユーザー日本語名称
192             * ・ID        ユーザー?©?¤
193             * ・IDNO      USER.ID が5Byte以上ã?時ã?み先é??‘文字を除ã�?�Ÿユーザー?©?¤
194             * ・INFO      ユーザーæƒ??(ユーザーID?š日本語名称)
195             * ・LANG      è¨?ª?
196             * ・ROLES     ロール
197             * ・IPADDRESS IPアドレス
198             * ・LOGINTIME ログイン時刻
199             *
200             * 以下ã?値はあらかじめã?動的に作æ?されますã?
201             *
202             * ・YMD       ?˜byte の今日のシスãƒ?ƒ 日ä»?
203             * ・YMDH    ?‘4byte の今日のシスãƒ?ƒ 日æ™?
204             *
205             * それ以外ã?、外部より設定された値ですã?
206             *
207             * @param       val キャãƒ?‚·ュするサブキー
208             */
209            public void setUser( final String val ) {
210                    user = nval( getRequestParameter( val ),user );
211            }
212    
213            /**
214             * 【TAG】{@GUI.XXXX} と同等ã?GUIInfoオブジェクトã?値を取得しますã?
215             *
216             * @og.tag
217             * GUIInfo オブジェクトで定義されてã�?‚‹属æ?æƒ??を取りå?すことがå?来ますã?
218             * 引数はã€?XXXX ID" とã�?�†状態で受け取りますã?(GUI. ははずした形)
219             * XXXXには、画面æƒ??(GUIInfo)の属æ?キーを指定しますã?IDが指定されなã�??合ã?ã€?
220             * 実行中の自åˆ??身の画面が指定されたことになりますã?
221             * これは、session 登録é ?›® の HybsSystem#GUIINFO_KEY キー の値で取得しますã?
222             * こã?値は,画面が呼び出される毎に毎回設定されており、リクエスト毎に
223             * æ‰?¾—し直すå¿?¦�がありますã?
224             *
225             * ID に、画面IDを指定したå?合ã?ã€?#064; æŒ?®šによるリクエスト引数の値を適用できますã?
226             * {@GUI.@XXXX ID} ã‚??{@GUI.XXXX @ID} ですã?(同時æŒ?®šも可能)
227             *
228             * ・KEY           画面ID
229             * ・ADDRESS       実行アドレス
230             * ・REALADDRESS   実行実アドレス
231             * ・SEQUENCE      表示é ?
232             * ・GROUPS        メニュグルーãƒ?
233             * ・CLASSIFY      メニュåˆ?¡?
234             * ・LEVEL         メニュ階層番号
235             * ・LABEL         画面名称
236             * ・NAME          画面名称(=SNAME)
237             * ・SNAME         画面名称(short)
238             * ・LNAME         画面名称(long)
239             * ・ROLES         ロールズ
240             * ・MODE          アクセスモードå?(mr,mw,-r,-w のç¾??)
241             * ・TARGET        ターゲãƒ?ƒˆ
242             * ・PARAM         設定å?(パラメータ)
243             * ・KBLINK        リンク区åˆ?
244             * ・DESCRIPTION   概要説æ˜?
245             *
246             * @param       val 画面æƒ??を取りå?すキー
247             */
248            public void setGui( final String val ) {
249                    gui = nval( getRequestParameter( val ),gui );
250            }
251    
252            /**
253             * 【TAG】{@MEM.XXXX} と同等ã?REQUEST_CACHE の値を取得しますã?
254             *
255             * @og.tag
256             * 検索時ã? request æƒ??をキャãƒ?‚·ュしてã�?‚‹メモリ上からå?を取りå?しますã?
257             * 通常は、query_init.jsp で定義されてã�?‚‹ GAMENID付ã?
258             * リクエストキャãƒ?‚·ュæƒ??を取りå?しますã?
259             *
260             * @param       val キャãƒ?‚·ュするサブキー
261             */
262            public void setMem( final String val ) {
263                    mem = nval( getRequestParameter( val ),mem );
264            }
265    
266            /**
267             * 【TAG】{@LBL.XXXX} と同等ã?ラベルリソースの値を取得しますã?
268             *
269             * @og.tag
270             * ラベルリソースのロケールは、ログインユーザーのロケールになりますã?
271             * これは、{@LBL.XXXX Y} 引数処ç�?‚’おこなã�?�Ÿめã?、サポã?トメソãƒ?ƒ‰ですã?
272             * 引数はã€?XXXX Y" とã�?�†状態で受け取りますã?(LBL. ははずした形)
273             * ラベルにはã€??常のラベル(Label)以外に、Short,Tips,Comment のæƒ??を持ってã�?�¾すã?
274             * {@LBL.XXXX Y} の Y に、å?のLabel,Short,Tips,Comment の頭æ–?­?'L','S','T','C')ã‚?
275             * æŒ?®šすることで、それぞれã?状態を取得することが可能になりますã?
276             * Y を指定しなã�??å�?{@LBL.XXXX}) はã€?L' が指定された場合と同じ効果がありますã?
277             * Y は、å?頭æ–?­—1文字で判断してã�?�¾すã?で、{@LBL.XXXX Short}と記述できますã?
278             * Y 引数にはã€?#064;で始まるリクエスト引数が指定できますã?例えば、{@LBL.XXXX @ZZ}
279             * とすると、ZZ のリクエスト引数の値ã�?Y に適用されますã?
280             * ラベルキーそã?もã?をパラメータ化することがå?来ますã?
281             * これは、{@LBL.@XXXX}とã�?�†形式になりますã?引数は、å?の説明と同じですã?
282             * こã?場合ã?、XXXX をキーにリクエスト引数の値がã?ラベルリソースのキーになりますã?
283             *
284             * @param       val キャãƒ?‚·ュするサブキー
285             */
286            @Override
287            public void setLbl( final String val ) {
288                    lbl = nval( getRequestParameter( val ),lbl );
289            }
290    
291            /**
292             * 【TAG】{@MSG.XXXX} と同等ã?メãƒ?‚»ージリソースの値を取得しますã?
293             *
294             * @og.tag
295             * メãƒ?‚»ージリソースのロケールは、ログインユーザーのロケールになりますã?
296             * メãƒ?‚»ージリソースでは、{@MSG.XXXX AA @BB #CC} とã�?�†引数処ç�?‚’おこなã�?
297             * 事が可能ですã?
298             * 引数はã€?XXXX AA @BB #CC" とã�?�†状態で受け取りますã?(MSG. ははずした形)
299             * "AA @BB #CC" は、スペã?スで区åˆ?‚‰れたメãƒ?‚»ージリソースの引数æ–?­—ですã?
300             * こã?、引数æ–?­—にはã€??常æ–?­?AA)、リクエスト文å­?@BB)、ラベルæ–?­?#CC)が指定できますã?
301             * ・通常æ–?­?AA)?šそのまま、メãƒ?‚»ージリソースの引数にセãƒ?ƒˆされますã?
302             * ・リクエスト文å­?@BB)?šリクエスト引数に置き換えますã?通常、{@BB} æŒ?®šしますがã€?
303             *   メãƒ?‚»ージパラメータの引数、{@XXXX ?¥?¥?¥ {@BB} ?¥?¥?¥} と、å?れ子でæŒ?®šできなã�?�Ÿめã?
304             *   {@XXXX ?¥?¥?¥ @BB ?¥?¥?¥} と、省略形でæŒ?®šしますã?よって、引数としてã€??常æ–?­—ã?
305             *   先é?にã€?@" を使用することは出来ませんã€?
306             * ・ラベルæ–?­?#CC)?šラベルキーを指定されたと解釈して、å?ç�?�—ますã?これはã€?CC"ã‚?
307             *   キーに、ラベルリソースを検索しã?そã?è¨?ªžに応じた文字に変換後ã?メãƒ?‚»ージリソースの
308             *   引数にæŒ?®šしますã?PL/SQL等で、SET_ERRMSGS プロシージャの引数に、{#CC} æ–?­—を
309             *   æŒ?®šして、ラベルリソースを利用できますが、{@XXXX ?¥?¥?¥ {#CC} ?¥?¥?¥} と、å?れ子で
310             *   æŒ?®šできなã�?�Ÿめã?{@XXXX ?¥?¥?¥ #CC ?¥?¥?¥} と、省略形でæŒ?®šしますã?
311             *   よって、引数としてã€??常æ–?­—ã?先é?にã€?#" を使用することは出来ませんã€?エスケープ未採用)
312             * メãƒ?‚»ージキーそã?もã?をパラメータ化することがå?来ますã?
313             * これは、{@MSG.@XXXX}とã�?�†形式になりますã?引数は、å?の説明と同じですã?
314             * こã?場合ã?、XXXX をキーにリクエスト引数の値がã?メãƒ?‚»ージリソースのキーになりますã?
315             *
316             * @param       val キャãƒ?‚·ュするサブキー
317             */
318    //      public void setMsg( final String val ) {
319    //              msg = nval( getRequestParameter( val ),msg );
320    //      }
321    
322            /**
323             * 【TAG】データベã?ス実行結果を取得しますã?
324             *
325             * @og.tag
326             * 検索結果の件数をã?"DB.COUNT" キーでリクエストにセãƒ?ƒˆしてã�?�¾すã?
327             * 検索結果をã?"DB.ERR_CODE" キーでリクエストにセãƒ?ƒˆしてã�?�¾すã?
328             * これらã?、リクエストã?アトリビュートへセãƒ?ƒˆしてã�?‚‹為、query タグã‚??
329             * directWriteTable タグの処ç�?»¥降ã?リクエストスコープ中での取得になりますã?
330             *
331             * @param       val キャãƒ?‚·ュするサブキー
332             */
333            public void setDb( final String val ) {
334                    db = nval( getRequestParameter( val ),db );
335            }
336    
337            /**
338             * 【TAG】session Attribute の値を取得しますã?
339             *
340             * @og.tag
341             * session スコープに登録されてã�?‚‹アトリビュートオブジェクトã?値ã‚?
342             * 取り出しますã?
343             *
344             * @param       val キャãƒ?‚·ュするサブキー
345             */
346            public void setSession( final String val ) {
347                    session = nval( getRequestParameter( val ),session );
348            }
349    
350            /**
351             * 【TAG】日付関係ã?値を取得しますã?
352             *
353             * @og.tag
354             * これは、{@DATE.XXXX AA BB} 引数処ç�?‚’おこなã�?�Ÿめã?、サポã?トメソãƒ?ƒ‰ですã?
355             * 引数はã€?XXXX AA BB" とã�?�†状態で受け取りますã?(DATE. ははずした形)
356             * "XXXX" は、日付å?ç�?‚’行うキーæ–?­—å?で予ç´?ªžになってã�?�¾すã?
357             * ・YMDã€???š8文字ã?日付データ(200X年XXæœ?X日)を扱ã�?�¾すã?
358             * ・Y2MDã€??š6文字ã?日付データ(0X年XXæœ?X日)を扱ã�?�¾すã?
359             * ・YMã€?? ?š6文字ã?日付データ(200X年XXæœ?を扱ã�?�¾すã?
360             * ・HMSã€???š6文字ã?時刻ãƒ??タ(XX時XXåˆ?Xç§?を扱ã�?�¾すã?
361             * ・YMDHMS ?š14文字ã?日付データ(200X年XXæœ?X日XX時XXåˆ?Xç§?を扱ã�?�¾すã?
362             * ・EEEã€???š曜日をデフォルトロケールで表示しますã?
363             *
364             * F付きは、フォーマットされた日付を返しますã?
365             * ・YMDFã€??š8文字ã?日付データ(200X年XXæœ?X日)を扱ã�?�¾すã?
366             * ・Y2MDFã€?¼š6文字ã?日付データ(0X年XXæœ?X日)を扱ã�?�¾すã?
367             * ・YMFã€???š6文字ã?日付データ(200X年XXæœ?を扱ã�?�¾すã?
368             * ・HMSFã€??š6文字ã?時刻ãƒ??タ(XX時XXåˆ?Xç§?を扱ã�?�¾すã?
369             * ・YMDHMSF?š14文字ã?日付データ(200X年XXæœ?X日XX時XXåˆ?Xç§?を扱ã�?�¾すã?
370             *
371             * AA 引数は、基準となる日付を、YYYYMMDD形式でæŒ?®šしますã?無æŒ?®šã?場合ã?ã€?
372             * 処ç�?™‚刻を基準にした、同ä¸?‚¿グå†?�§の同ä¸?—¥ä»?年月日時å?ç§?を使用して値を取得しますã?
373             * æŒ?®šできる日付ã?、å¿?�š、YYYYMMDD形式としã?時å?秒ã? ゼロにリセãƒ?ƒˆされた状態になりますã?
374             * AA には、数字で始まã‚?20050701など)実日付と@で始まるパラメータが使用できますã?
375             * @ZZ と記述することで、{@ZZ}でæŒ?®šするå?合と同様ã?リクエストパラメータが使用できますã?
376             * こã?パラメータの値は、YYYYMMDD形式ã?数字か、null(またã?ゼロストリング)ですã?nullの
377             * 場合ã?、なにも指定されてã�?�ªã�?�¨判断して、å?ç�?™‚刻を使用しますã?
378             * 第?’引数はã€?数字かã€?#064;)以外ã?場合ã?、省略されたと判断されますã?
379             *
380             * BB 引数は、日付につã�?�¦のåŠ?¸›算å?ç�?‚’行いますã?
381             * 省略すると、なにも加減算å?ç�?‚’行いませんã€?
382             * ・SD ?š当月のæœ??の日付にセãƒ?ƒˆしますã?(当月?‘日)
383             * ・ED ?š当月のæœ?¾Œã?日付にセãƒ?ƒˆしますã?(当月月末)
384             * ・SM ?š本年のæœ??の月にセãƒ?ƒˆしますã?(本年?‘月)
385             * ・EM ?š本年のæœ?¾Œã?月にセãƒ?ƒˆしますã?(本年?‘2月)
386             * ・SW ?š日付å?ç�??週初め(月曜日)にセãƒ?ƒˆしますã?日付ã?当日より前に移動しますã?
387             * ・EW ?š日付å?ç�??週末(日曜日)にセãƒ?ƒˆしますã?日付ã?当日より後ろに移動しますã?
388             * ・D1 ??DXXX ?š日を指定ã?åˆ?� けé?めますã?D1なら翌日、D200 なã‚?00日å¾?
389             * ・M1 ??MXXX ?š月を指定ã?åˆ?� けé?めますã?M1なら翌月、M6 なら半年å¾?
390             *
391             * @param       val キャãƒ?‚·ュするサブキー
392             */
393            public void setDate( final String val ) {
394                    date = nval( getRequestParameter( val ),date );
395            }
396    
397            /**
398             * 【TAG】Unicodeæ–?­—å?の値ã‚?HTML のエスケープ記号(&#xZZZZ;)に変換しますã?
399             *
400             * @og.tag
401             * HTMLでのエスケープ文字を使用して、Unicodeを文字å?化して登録する為の変換を行いますã?
402             * ここでは、å?力文字を、キャラクタ(char)型にåˆ?§£しã?(&#xZZZZ;)に変換してã�?��ますã?
403             * よってã€??常に?‘文å­?Shift-JISで?’Byte,UTF-8で?“Byte)がã??˜Byteになりますã?
404             * こã?変換された文字å?をã?HTML上でそã?まま取り出すと、å?のUnicodeæ–?­—に戻る為ã€?
405             * 通常のShift-JISでは、扱えなã�?–‡å­?中国語など)でも表示可能になりますã?
406             *
407             * @param       val キャãƒ?‚·ュするサブキー
408             */
409            public void setNvar( final String val ) {
410                    nvar = nval( getRequestParameter( val ),nvar );
411            }
412    
413            /**
414             * こã?オブジェクトã?æ–?­—å?表現を返しますã?
415             * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
416             *
417             * @return こã?クラスのæ–?­—å?表現
418             */
419            @Override
420            public String toString() {
421                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
422                                    .println( "VERSION"             ,VERSION        )
423                                    .println( "sys"                 ,sys            )
424                                    .println( "user"                ,user           )
425                                    .println( "gui"                 ,gui            )
426                                    .println( "mem"                 ,mem            )
427                                    .println( "lbl"                 ,lbl            )
428    //                              .println( "msg"                 ,msg            )
429                                    .println( "db"                  ,db                     )
430                                    .println( "session"             ,session        )
431                                    .println( "date"                ,date           )
432                                    .println( "nvar"                ,nvar           )
433                                    .println( "Other..."    ,getAttributes().getAttribute() )
434                                    .fixForm().toString() ;
435            }
436    }