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.hayabusa.common.HybsSystem;
019 import org.opengion.hayabusa.common.HybsSystemException;
020 import org.opengion.hayabusa.db.DBTableModel;
021 import org.opengion.fukurou.util.ErrorMessage;
022 import org.opengion.fukurou.util.XHTMLTag;
023 import org.opengion.fukurou.util.StringUtil;
024
025 import static org.opengion.fukurou.util.StringUtil.nval ;
026
027 import javax.servlet.http.HttpServletRequest;
028 import javax.servlet.http.HttpServletResponse;
029 import javax.servlet.http.HttpSession;
030 import javax.servlet.ServletException;
031 import java.io.IOException;
032 import java.io.ObjectInputStream;
033 import java.io.ObjectOutputStream;
034 import java.util.Enumeration;
035 import java.util.Map;
036 import java.util.HashMap;
037
038 /**
039 * submitタグを用ã?¦ãƒšã?ジ転é€ã™ã‚‹ã‚¿ã‚°ã§ã?forward.jsp ã§ä½¿ç”¨)ã€?
040 *
041 * 通常ã€forward ã¯ã€ã?ージå†?»¢é€?サーãƒã?å†?ƒ¨ã§ã®è»¢é€?ã®ãŸã‚ã€åˆ¥ç”»é¢ã¸ã®é·ç§»ã«ã¯
042 * 使用ã§ãã¾ã›ã‚“。ã“れã?ã€åˆ¥ç”»é¢ã§ã¯ã€index.jsp ç‰ã§ãƒ•レーãƒ??割ã™ã‚‹éš›ã?基準フォルãƒ??ã€?
043 * forward ã®å ´åˆã?クライアントã?ç?§£ã—ã¦ã?ªã?Ÿã‚ã?ã‚‚ã†ä¸?º¦å…ˆã?フォルãƒ?«å¯¾ã™ã‚‹
044 * フレーãƒ??割を行ãŠã?¨ã™ã‚‹ãŸã‚ã§ã™ã?
045 * (よãã€index.jsp ã® frame ã‚¿ã‚°ã«ã€src="../XXXX/query.jsp" ãªã©ã¨ã€è?åˆ??身ã®ãƒ•ォルãƒ?ã‚?
046 * 記述ã—ãŸãƒšã?ジを見ã‹ã‘ã¾ã™ãŒã€ã“れã?ã€ãƒ•ォルãƒ?‚’ã¾ãŸãŒã‚‹è»¢é€ã«ã€forward を使用ã™ã‚‹
047 * ç‚ºã®æ‚ªã?¯¾ç–ã§ã™ã?)
048 * 実際ã¯ã€forward ã§ã¯ãªãã?redirect を使ã?¹ãã§ã™ã?redirect ã¯ã€æŒ‡å®šã?ã‚¢ãƒ‰ãƒ¬ã‚¹è¦æ±‚ã‚’ã€?
049 * ä¸?—¦ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«æŠ•ã’ã¦ãã“ã‹ã‚‰å†åº¦è¦æ±‚ã—ãªãŠã—ã¦ã‚‚らã?–¹å¼ã?ãŸã‚ã€ã“ã®ã‚ˆã†ã«ãƒ•ォルãƒ?‚’
050 * ã¾ãŸãŒã‚‹è»¢é€ã‚‚æ£å¸¸ã«å‡¦ç?§ãã¾ã™ã?
051 * ã“ã?ã€commonForward ã‚¿ã‚°ã§ã¯ã€ç”»é¢é·ç§»ã®æ¡ä»¶ã«å¿œã˜ã¦ã€forward ã?redirect ã®è‡ªå‹?
052 * 判定を行ã„ã€?©åˆ?«å‡¦ç?—ã¦ã?¾ã™ã?
053 * 判定æ¡ä»¶ã¯ã€æ‹¡å¼µåã‚„ã€?¸æŠžä»¶æ•°ãªã©ã‚’åŠ å‘³ã—ã¦ä»¥ä¸‹ã?判定をé ?¬¡ãƒ?‚¹ãƒˆã—ã¾ã™ã?
054 *
055 * FORWARD :
056 * アドレスãŒã? null(自åˆ??身) ã‹ã?.jsp ã‚’å«ã¿ã€?/" ãŒå?ã£ã¦ã?ªã??å?
057 * REDIRECT:
058 * アドレスãŒã?.jsp ã‚’å«ã¾ãªã?‹ã€?
059 * ãれ以å¤?.jsp ã‚’å«ã¿ã€?/" ã‚‚å«ã‚?ã§ã€?¸æŠžæ•°ãŒï¼‘ä»¶ã®ã¿ã®å ´å?
060 * ã‚‚ã—ãã?useRedirectCheck="false"ã®å ´å?
061 * COUNT_0 :
062 * ãれ以外ã§ã€?¸æŠžæ•°ãŒï¼ä»¶ã®å ´å?
063 * COUNT_N :
064 * ãれ以外ã§ã€?¸æŠžæ•°ãŒï¼‘件以上ã?å ´åˆã?ã¾ãŸã?ã€ãã®ä»–ã?
065 *
066 * ã“ã“ã§ã€COUNT_0 ã®å ´åˆã?ã€æœªé¸æŠžã‚¨ãƒ©ãƒ¼ã€COUNT_N ã¯ã€è¤?•°é¸æŠžã‚¨ãƒ©ãƒ¼ã‚’è?å‹•çš„ã«è¿”ã—ã¾ã™ã?
067 *
068 * @og.formSample
069 * â—å½¢å¼ï¼?lt;og:commonForward />
070 * â—body?šãªã?
071 *
072 * â—Tag定義??
073 * <og:commonForward
074 * dbkeys ã€TAG】DBã‚ーをCSV å½¢å¼ã§ã‚»ãƒ?ƒˆã—ã¾ã?
075 * tableId ã€TAGã€?通常使ã?¾ã›ã‚“)sessionã‹ã‚‰æ‰?¾—ã™ã‚?DBTableModelオブジェクトã? ID
076 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
077 * useRedirectCheck ã€TAG】éžé¸æŠžçŠ¶æ…‹ã?å ´åˆã«forwardを許å¯ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)
078 * />
079 *
080 * â—使用ä¾?
081 * フォワードã‚ャãƒ?‚·ãƒ¥ã«ã‚ˆã‚Šãƒšã?ジ転é€ã—ã¾ã™ã?
082 * <og:commonForward dbkeys="{@dbkeys}" />
083 *
084 * @og.group ç”»é¢åˆ¶å¾¡
085 *
086 * @version 4.0
087 * @author Masaharu Endo
088 * @since JDK5.0,
089 */
090 public class CommonForwardTag extends CommonTagSupport {
091 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
092 private static final String VERSION = "5.3.6.0 (2011/06/01)" ;
093
094 private static final long serialVersionUID = 536020110601L ; // 5.3.6.0 (2011/06/01)
095
096 // 3.5.5.3 (2004/04/09) å…±é€šã‚¢ãƒ‰ãƒ¬ã‚¹ã§æŒ?®šã™ã‚‹ã“ã¨ã§ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚ャãƒ?‚·ãƒ¥ã‚’有効利用ã™ã‚‹ã€?
097 private static final String DUMMY_HTML = "/" + HybsSystem.getContextName() + "/jsp/common/dummy.html";
098
099 // 3.8.5.1 (2006/04/28) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã™ã‚‹ã‹ã©ã?‹ã‚?COMMON_FORWARD_DBKEYS_NULL_ALL ã§æŒ?®šã—ã¾ã™ã?
100
101 private static final int FORWARD = 0;
102 private static final int REDIRECT = 1;
103 private static final int COUNT_0 = 2;
104 private static final int COUNT_N = 3;
105
106 // 3.5.5.2 (2004/04/02) é¸æŠžè¡ŒãŒã€?¼‘行ã?ã¿ã‹ã?ãã†ã§ãªã?‹
107 private int rowCount = -1;
108
109 // 3.5.5.2 (2004/04/02) é¸æŠžè¡Œã? DBTableModel ãƒ??タを引数ã«ä½¿ç”¨ã™ã‚‹ã‹ã©ã?‹ã€?
110 // private boolean useTableData = HybsSystem.sysBool( "COMMON_FORWARD_USE_TABLE_DATA" );
111 // private String tableId = HybsSystem.TBL_MDL_KEY;
112 private int rowNo = -1;
113
114 // 3.5.5.5 (2004/04/23) URLã«é€£çµã™ã‚‹DBTableModelã®ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã?
115 private String dbkeys = null;
116
117 // 3.5.5.8 (2004/05/20) submitã‚¿ã‚°ã® keys,vals を扱ã?仮想リクエスãƒ?ap
118 // private String useTableTemp = null;
119 private String tableIdTemp = null;
120 private String dbkeysTemp = null;
121 private transient Map<String,String> submitRequestMap = new HashMap<String,String>(); // 3.5.6.2 (2004/07/05)
122 private transient Map<String,String> submitTableMap = new HashMap<String,String>(); // 3.8.5.1 (2006/04/28)
123
124 // 4.0.0.0 (2007/11/09) éžé¸æŠžçŠ¶æ…‹ã§ã®forwardã®ãŸã‚ã®å±žæ?追åŠ?
125 private boolean isRedirectCheck = true;
126
127 /**
128 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
129 *
130 * @og.rev 3.3.1.1 (2003/07/03) ?µ?²?¬ã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã‚’ï¼µ?²?¬ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã—ã¦è¿½åŠ?—ã¾ã™ã?
131 * @og.rev 3.5.5.2 (2004/04/02) フォルãƒ?¤–è»¢é€æ™‚ã¯ã€?¼‘è¡Œä»¥å¤–é¸æŠžã?ã€ã‚¨ãƒ©ãƒ¼ã¨ã—ã¾ã™ã?
132 * @og.rev 3.5.5.3 (2004/04/09) ãƒ?ƒãƒ?‚°æ™‚ã?ã€è»¢é€ã—ãªã?‚ˆã?«ã—ã¾ã™ã?
133 * @og.rev 3.8.0.4 (2005/08/08) requestUrlEncode å»?¢
134 * @og.rev 3.8.0.8 (2005/10/03) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã—ã¦ã?Ÿå‡¦ç?‚’復活ã—ã¾ã™ã?
135 * @og.rev 4.0.0.0 (2007/11/09) éžé¸æŠžçŠ¶æ…‹ã‹ã‚‰ã?é·ç§»ã‚’許å¯ã™ã‚‹ãƒ•ラグを追åŠ?11/12ã«æŒ¯ã‚Šå?ã‘å?ç?‚’selectResponseMethodã«ç§»å‹?
136 * @og.rev 5.0.0.2 (2009/09/15) XSS対応âçãƒã‚§ãƒ?‚¯ã™ã‚‹
137 * @og.rev 5.3.6.0 (2011/06/01) エラーメãƒ?‚»ãƒ¼ã‚¸å¤‰æ›´(URLã®æŒ¯ã‚Šå?ã‘å?ç?™‚ã«...ã®ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã¯å‡ºåŠ›ã—ãªã?
138 *
139 * @return 後続å?ç??æŒ?¤º
140 */
141 @Override
142 public int doEndTag() {
143 debugPrint(); // 4.0.0 (2005/02/28)
144
145 // useXssCheck( false ); // 5.0.0.2 (2009/09/15)
146
147 HttpServletRequest request = ((HttpServletRequest)getRequest());
148 HttpSession session = pageContext.getSession();
149 String page = getForwardURI( request, session );
150
151 // 3.5.5.8 (2004/05/20) å†?ƒ¨ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?ap より値をå–å¾?
152 // useTableData = nval( getSubmitRequestParameter( useTableTemp ),useTableData );
153 // tableId = nval( getSubmitRequestParameter( tableIdTemp ),tableId );
154 dbkeys = nval( getSubmitRequestParameter( dbkeysTemp ),dbkeys );
155
156 HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
157
158 String errMsgKey = null;
159 try {
160 // 3.5.5.2 (2004/04/02) 振りå?ã‘æ¡ä»¶ã‚’判定ã™ã‚‹ãƒ¡ã‚½ãƒ?ƒ‰ã‚’é?ã—ã¾ã™ã?
161 // ã“ã?メソãƒ?ƒ‰ã«ã‚ˆã‚Šã€useTableData ãŒå?è¨å®šã•れã¾ã™ã?処ç??ã«æ³¨æ„?
162 int flag = selectResponseMethod( page );
163
164 // 3.8.0.8 (2005/10/03) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã—ã¦ã?Ÿå‡¦ç?‚’復活ã—ã¾ã™ã?
165 // if( rowCount == 1 && useTableData ) {
166 if( rowCount == 1 && dbkeys != null ) {
167 page = XHTMLTag.addUrlEncode( page,getTableUrlData() );
168 }
169
170 String url = response.encodeRedirectURL( page );
171 // 3.8.0.8 (2005/10/03) GET時ã? URL ã®é•·ã•制é™ãƒã‚§ãƒ?‚¯(æœ?¤§æ–?—数㯠2,083 æ–??
172 if( url != null && url.length() >= HybsSystem.MAX_GET_LENGTH ) {
173 String errMsg = "GET時ã? URL ã®é•·ã•ã?,æœ?¤§2,083 æ–?—ã§ã™ã?"
174 + " URL.length=" + url.length() + " , MAX_LENGTH=" + HybsSystem.MAX_GET_LENGTH ;
175 throw new HybsSystemException( errMsg );
176 }
177
178 switch( flag ) {
179 case FORWARD: if( isDebug() ) { jspPrint( "FORWARD URL = [" + url + "]" ); }
180 else { pageContext.forward( url ); }
181 break;
182 case REDIRECT: // url = requestUrlEncode( url ); // 3.8.0.4 (2005/08/08)
183 if( isDebug() ) { jspPrint( "REDIRECT URL = [" + url + "]" ); }
184 else { response.sendRedirect( url ); }
185 break;
186 case COUNT_0:
187 // if( isDebug() ) {
188 // jspPrint( "RedirectCheck = [" + isRedirectCheck + "]" );
189 // jspPrint( "FORWARD URL = [" + url + "]" );
190 // }
191 // if( isRedirectCheck ) { errMsgKey = "ERR0028" ; } // é¸æŠžã•れã¦ã?¾ã›ã‚“。もã?¸?º¦ã€?¸æŠžã—ãªãŠã—ã¦ä¸‹ã•ã??
192 // else{ response.sendRedirect( url );} // 4.0.0.0 (2007/11/09) éžé¸æŠžçŠ¶æ…‹é?移フラグ追åŠ?
193 errMsgKey = "ERR0028" ; // é¸æŠžã•れã¦ã?¾ã›ã‚“。もã?¸?º¦ã€?¸æŠžã—ãªãŠã—ã¦ä¸‹ã•ã??
194 break;
195 default: errMsgKey = "ERR0029" ; // è¤?•°é¸æŠžã•れã¾ã—ãŸã€‚1件ã®ã¿é¸æŠžã—ãªãŠã—ã¦ä¸‹ã•ã??
196 break;
197 }
198
199 } catch ( IOException ex ) {
200 // 5.3.6.0 (2011/06/01) エラーメãƒ?‚»ãƒ¼ã‚¸è¡¨ç¤ºå¤‰æ›´
201 // String errMsg = "URLã®æŒ¯ã‚Šå?ã‘å?ç?™‚ã« IOException ãŒç™ºç”Ÿã—ã¾ã—ãŸã€?" + HybsSystem.CR
202 // + ex.getMessage(); // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£
203 String errMsg = ex.getMessage(); // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£
204 throw new HybsSystemException( errMsg,ex ); // 3.5.5.4 (2004/04/15) 引数ã®ä¸¦ã³é ?¤‰æ›´
205 } catch ( ServletException ex ) {
206 // 5.3.6.0 (2011/06/01) エラーメãƒ?‚»ãƒ¼ã‚¸è¡¨ç¤ºå¤‰æ›´
207 // String errMsg = "URLã®æŒ¯ã‚Šå?ã‘å?ç?™‚ã« ServletException ãŒç™ºç”Ÿã—ã¾ã—ãŸã€?" + HybsSystem.CR
208 // + ex.getMessage(); // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£
209 String errMsg = ex.getMessage(); // 5.1.8.0 (2010/07/01) errMsg ä¿®æ£
210 throw new HybsSystemException( errMsg,ex ); // 3.5.5.4 (2004/04/15) 引数ã®ä¸¦ã³é ?¤‰æ›´
211 }
212
213 // 3.5.5.2 (2004/04/02) フォルãƒ?¤–è»¢é€æ™‚ã¯ã€?¼‘è¡Œä»¥å¤–é¸æŠžã?ã€ã‚¨ãƒ©ãƒ¼ã¨ã—ã¾ã™ã?
214 if( errMsgKey != null ) {
215 ErrorMessage errMsg = new ErrorMessage( "Row Count Error Maximal Error!" );
216 errMsg.addMessage( 0,ErrorMessage.NG,errMsgKey );
217
218 jspPrint( TaglibUtil.makeHTMLErrorTable( errMsg,getResource() ) );
219 }
220
221 return( SKIP_PAGE ); // ペã?ã‚¸ã®æ®‹ã‚Šã®å‡¦ç?‚’行ã‚ãªã??
222 }
223
224 /**
225 * タグリブオブジェクトをリリースã—ã¾ã™ã?
226 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã?
227 *
228 * @og.rev 3.5.5.2 (2004/04/02) æ–°è¦è¿½åŠ?rowCount,useTableData)
229 * @og.rev 3.5.5.5 (2004/04/23) URLã«é€£çµã™ã‚‹DBTableModelã®ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã?
230 * @og.rev 3.8.5.1 (2006/04/28) URLã«é€£çµã™ã‚‹DBTableModelã®ã‚«ãƒ©ãƒ?‚’[カラãƒ?å½¢å¼ã§æŒ?®šã—ã¾ã™ã?
231 *
232 */
233 @Override
234 protected void release2() {
235 super.release2();
236 rowCount = -1;
237 // useTableData = HybsSystem.sysBool( "COMMON_FORWARD_USE_TABLE_DATA" );
238 // tableId = HybsSystem.TBL_MDL_KEY;
239 rowNo = -1;
240 dbkeys = null; // 3.5.5.5 (2004/04/23)
241 submitRequestMap = new HashMap<String,String>(); // 3.5.5.8 (2004/05/20)
242 submitTableMap = new HashMap<String,String>(); // 3.8.5.1 (2006/04/28)
243 // useTableTemp = null; // 3.5.5.8 (2004/05/20)
244 tableIdTemp = null; // 3.5.5.8 (2004/05/20)
245 dbkeysTemp = null; // 3.5.5.8 (2004/05/20)
246 isRedirectCheck = true; // 4.0.0.0 (2007/11/12)
247 }
248
249 /**
250 * フォワードå?URIã‚’å–å¾—ã—ã¾ã™ã?
251 *
252 * @og.rev 3.1.2.0 (2003/04/07) ソースコードä¸ã®å›ºå®šå?ã‚’ã?定義ファイルを使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹ã€?
253 * @og.rev 3.1.4.1 (2003/04/21) request.getQueryString() ã‚’addUrlEncodeã—ã¦ã?‚‹ç®?‰€ã‚’削除ã€?
254 * @og.rev 3.1.7.0 (2003/05/02) コマンãƒ?RENEW ã§ã€forward ã—ãŸå ´åˆã«ã€result.jsp ã«é·ç§»ã™ã‚‹ã‚ˆã†ã«ä¿®æ£ã€?
255 * @og.rev 3.1.7.0 (2003/05/02) ç”»é¢?©?¤ã®ã‚»ãƒ?ƒˆã§ã€è?ç”»é¢ã‚’ã?BACK_GAMENID ã€?£›ã?先をã€GAMENID ã«ã™ã‚‹ã€?
256 * @og.rev 3.1.8.0 (2003/05/16) SubmitData クラスを利用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã€?
257 * @og.rev 3.3.1.1 (2003/07/03) ForwardManager クラスã®å»?¢ã€‚飛ã?å…ˆã?ã‚ャãƒ?‚·ãƒ¥ã‚’å»?¢ã—ã¾ã™ã?
258 * @og.rev 3.5.5.2 (2004/04/02) é¸æŠžè¡Œã?ä»¶æ•°ã‚’è¨å®šã—ã¦ãŠãã¾ã™ã?
259 * @og.rev 3.5.5.3 (2004/04/09) dummy.html ã‚?static final ã§çµ¶å¯¾ãƒ‘スæŒ?®šã—ã¾ã™ã?
260 * @og.rev 3.5.5.4 (2004/04/15) メソãƒ?ƒ‰å†?§ä½¿ç”¨ã—ã¦ã?ªã??gamenId,jspID 変数を削除ã—ã¾ã™ã?
261 * @og.rev 3.5.5.5 (2004/04/23) 余計ãªãƒœã‚¿ãƒ³é–¢é€£æƒ??を転é€ã—ãªã?‚ºã«ã€ã‚ーを変更ã—ã¾ã™ã?
262 * @og.rev 3.5.5.5 (2004/04/23) SubmitTag ã® keys,vals 属æ?ã§æŒ?®šã—ãŸå?ã®ã¿ã€è»¢é€ã—ã¾ã™ã?
263 * @og.rev 3.5.5.8 (2004/05/20) SubmitTag ã® keys,vals 属æ?ã§æŒ?®šã—ãŸå?ã‚’ã?å†?ƒ¨ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Mapã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?
264 * @og.rev 3.7.0.1 (2005/01/31) リクエスト変数ã«é¸æŠžã•れãŸä»¶æ•°ã‚’追åŠ?
265 * @og.rev 3.7.0.3 (2005/03/01) æŒ?®šã?行番å·ã¾ã§ç”»é¢ã‚’スクãƒãƒ¼ãƒ«ã•ã›ã‚‹æ©Ÿè?を追åŠ??
266 * @og.rev 3.8.0.8 (2005/10/03) BACK_GAMENID ãŒã‚れã? BACK_ROW を追åŠ?™ã‚‹ã?
267 * @og.rev 3.8.5.1 (2006/04/28) vals="[カラãƒ?]" ã¨ã?†å¼•æ•°ã‚’å?ç?§ãる機è?を追åŠ??
268 * @og.rev 5.1.8.0 (2010/07/01) VIEWã®å ´åˆã‚‚ã€ç›´å‰ã?JSPã«é·ç§»ã™ã‚‹ã€?
269 *
270 * @param request HttpServletRequestオブジェク�
271 * @param session HttpSessionオブジェク�
272 *
273 * @return フォワードå?URI
274 */
275 private String getForwardURI( final HttpServletRequest request,
276 final HttpSession session ) {
277
278 // String cmd = request.getParameter( "command" );
279 String[] rows = request.getParameterValues( HybsSystem.ROW_SEL_KEY );
280
281 // 4.0.0 (2007/05/16) query.jsp ã§è¤?•°command 時ã?処ç?¿®æ£
282 String cmd = request.getParameter( "command" );
283 String[] cmds = request.getParameterValues( "command" );
284 if( cmds != null && cmds.length > 1 ) {
285 for( int i=0; i<cmds.length; i++ ) {
286 if( ! "NEW".equals( cmds[i] ) ) {
287 cmd = cmds[i]; break; // NEW ã§ãªã??æœ??ã®ä¸?¤
288 }
289 }
290 // ã™ã¹ã¦ã?NEW ã®å ´åˆã?ã€å˜ä½?getParameter) ã?NEW ãªã®ã§ç´??りã§ã‚ˆã„ã€?
291 }
292
293 // 3.5.5.2 (2004/04/02) é¸æŠžè¡Œã?ä»¶æ•°
294 if( rows != null ) {
295 rowCount = rows.length;
296 rowNo = Integer.parseInt( rows[0] );
297 }
298 else {
299 rowCount = 0;
300 }
301 // 3.7.0.1 (2005/01/31) リクエスト変数ã«é¸æŠžã•れãŸä»¶æ•°ã‚’追åŠ?
302 setRequestAttribute( "ROW_COUNT",String.valueOf( rowCount ) );
303
304 if( cmd == null || cmd.length() == 0 ) { cmd = "INIT"; }
305 // String forwardPage = "result.jsp" ;
306 final String forwardPage;
307
308 String backPage = (String)session.getAttribute( HybsSystem.FORWARD_PAGE_KEY );
309 String command = cmd; // 3.5.5.5 (2004/04/23)
310 int pagePlus = 0;
311
312 // コマンドパラメータã«ã‚ˆã‚ŠæŒ¯åˆ?‘
313 // 5.1.8.0 (2010/07/01) VIEWã®å ´åˆã‚‚ã€ç›´å‰ã?JSPã«é·ç§»ã™ã‚‹ã€?
314 // if( "FIRST,PREV,NEXT,LAST".indexOf( cmd ) >= 0 ) {
315 if( "FIRST,PREV,NEXT,LAST,VIEW".indexOf( cmd ) >= 0 ) {
316 forwardPage = backPage;
317 // } else if( "NEW,VIEW,RENEW".indexOf( cmd ) >= 0 ) {
318 } else if( "NEW,RENEW".indexOf( cmd ) >= 0 ) {
319 // åˆæœŸå€¤
320 forwardPage = "result.jsp";
321 } else if( "INIT".equals( cmd ) ) {
322 forwardPage = DUMMY_HTML; // 3.5.5.3 (2004/04/09)
323 } else {
324 // 共有オブジェクト検索
325
326 // リンクå…?‚³ãƒžãƒ³ãƒ‰åå–å¾?
327 // 3.5.5.5 (2004/04/23) 余計ãªãƒœã‚¿ãƒ³é–¢é€£æƒ??を転é€ã—ãªã?‚ºã«ã€ã‚ーを変更ã—ã¾ã™ã?
328 command = request.getParameter( HybsSystem.NO_XFER_KEY + cmd + "CMD" );
329
330 // 3.7.0.3 (2005/03/01) æŒ?®šã?行番å·ã¾ã§ç”»é¢ã‚’スクãƒãƒ¼ãƒ«ã•ã›ã‚‹æ©Ÿè?を追åŠ??
331 if( rows != null && "ENTRY".equals( command ) ) {
332 setRequestCacheData( "SEL_ROW",String.valueOf( rowNo ) );
333 }
334
335 if( "RESET".equals( command ) ) { // RESET æ™?
336 forwardPage = "result.jsp";
337 }
338 else {
339 // リンク先å–å¾?
340 forwardPage = request.getParameter( HybsSystem.NO_XFER_KEY + cmd );
341 // INSERTã¨COPYã®å ´åˆã?ã¿
342 if( "INSERT".equals( command ) || "COPY".equals( command ) ) {
343 if( rows != null ) { pagePlus = rows.length; }
344 }
345 }
346
347 // // リンク先å–å¾?
348 // forwardPage = request.getParameter( HybsSystem.NO_XFER_KEY + cmd );
349 //
350 // // INSERTã¨COPYã®å ´åˆã?ã¿
351 // if( "INSERT".equals( command ) || "COPY".equals( command ) ) {
352 // if( rows != null ) { pagePlus = rows.length; }
353 // }
354 // else if( "RESET".equals( command ) ) { // RESET æ™?
355 // forwardPage = "result.jsp";
356 // }
357 }
358
359 if( ! forwardPage.equals( backPage ) ) {
360 session.setAttribute( HybsSystem.REVIEW_PAGE_KEY , backPage );
361 }
362 session.setAttribute( HybsSystem.FORWARD_PAGE_KEY, forwardPage );
363
364 // 3.5.5.5 (2004/04/23) SubmitTag ã® keys,vals 属æ?ã§æŒ?®šã—ãŸå?ã®ã¿ã€è»¢é€ã—ã¾ã™ã?
365 StringBuilder strURL = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
366 strURL.append( "&" ).append( "command" ).append( "=" ).append( command );
367 strURL.append( "&" ).append( "pagePlus" ).append( "=" ).append( String.valueOf( pagePlus ) );
368
369 String btnKey = HybsSystem.NO_XFER_KEY + cmd + "KEY_" ;
370 int keylen = btnKey.length() ;
371
372 Enumeration<?> enm = getParameterNames(); // 4.3.3.6 (2008/11/15) Genericsè¦å‘Šå¯¾å¿?
373
374 while( enm.hasMoreElements() ) {
375 String key = (String)( enm.nextElement() );
376 // 3.5.5.5 (2004/04/23) ä½™è¨ˆãªæƒ??を転é€ã—ãªã?§˜ã«ã€ã‚ーをé¸åˆ¥ã—ã¾ã™ã?
377 if( key != null && key.startsWith( btnKey ) ) {
378 // 3.5.5.8 (2004/05/20) å†?ƒ¨ã®ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map ã«è¨å®šã—ã¾ã™ã?
379 String kk = key.substring( keylen ) ;
380 String vv = getRequestValue(key) ;
381 // 3.8.5.1 (2006/04/28) vals="[カラãƒ?]" ã¨ã?†å¼•æ•°ã‚’å?ç?§ãる機è?を追åŠ??
382 if( vv != null && vv.length() > 2 && vv.charAt(0) == '[' && vv.charAt(vv.length()-1) == ']' ) {
383 submitTableMap.put( kk,vv.substring( 1,vv.length()-1 ));
384 }
385 // else if( "dbkeys".equals( kk ) ) {
386 // submitRequestMap.put( kk,vv );
387 // }
388 else {
389 submitRequestMap.put( kk,vv );
390 strURL.append( "&" );
391 strURL.append( kk ).append( "=" );
392 strURL.append( StringUtil.urlEncode( vv ) );
393 }
394
395 // 3.8.0.8 (2005/10/03) BACK_GAMENID ãŒã‚れã? BACK_ROW を追åŠ?™ã‚‹ã?
396 if( "BACK_GAMENID".equalsIgnoreCase( kk ) && rowNo >= 0 ) {
397 strURL.append( "&BACK_ROW=" );
398 strURL.append( rowNo );
399 }
400 }
401 }
402
403 return XHTMLTag.addUrlEncode( forwardPage,strURL.toString() );
404 }
405
406 /**
407 * ペã?ジã‚?リãƒ?‚¤ãƒ¬ã‚¯ãƒˆã‹ãƒ•ォワードã‹é¸æŠžã—ã¾ã™ã?
408 * 判定æ¡ä»¶ã¯ã€æ‹¡å¼µåã‚„ã€?¸æŠžä»¶æ•°ãªã©ã‚’åŠ å‘³ã—ã¦ä»¥ä¸‹ã?判定をé ?¬¡ãƒ?‚¹ãƒˆã—ã¾ã™ã?
409 *
410 * FORWARD :
411 * アドレスãŒã? null ã‹ã?.jsp ã‚’å«ã¿ã€?/" ãŒå?ã£ã¦ã?ªã??å?
412 * REDIRECT:
413 * アドレスãŒã?.jsp ã‚’å«ã¾ãªã?‹ã€ãれ以å¤?.jsp ã‚’å«ã¿ã€?/" ã‚‚å«ã‚?ã§ã€?¸æŠžæ•°ãŒï¼‘ä»¶ã®ã¿ã®å ´å?
414 * COUNT_0 :
415 * ãれ以外ã§ã€?¸æŠžæ•°ãŒï¼ä»¶ã®å ´å?
416 * COUNT_N :
417 * ãれ以外ã§ã€?¸æŠžæ•°ãŒï¼‘件以上ã?å ´åˆã?ã¾ãŸã?ã€ãã®ä»–ã?
418 *
419 * @og.rev 3.5.5.2 (2004/04/02) æ–°è¦ä½œæ??šisJspPrefix( String page ) ã®ä»£ç”¨ã§ã™ã?
420 * @og.rev 4.0.0.0 (2007/05/23) useTableData ã®æ›¸ãæ›ãˆã‚’䏿¢ã—ã¾ã™ã?
421 * @og.rev 4.0.0.0 (2007/11/12) éžé¸æŠžçŠ¶æ…‹ã§ã‚‚リãƒ?‚¤ãƒ¬ã‚¯ãƒˆå¯èƒ½ãªãƒ•ラグ(isRedirectCheck)を追åŠ?
422 *
423 * @param page 判定ã™ã‚‹è»¢é€å?アドレス
424 *
425 * @return FORWARD,REDIRECT,COUNT_0,COUNT_N ã®ã?¡ã€ã©ã‚Œã‹
426 */
427 private int selectResponseMethod( final String page ) {
428 if( page == null ) { return FORWARD; }
429
430 int adrs = page.indexOf( ".jsp" );
431
432 if( adrs >= 0 && page.lastIndexOf( '/',adrs ) < 0 ) {
433 // useTableData = false; // ç¾æ™‚点ã§ã® forward ã§ã¯ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?
434 return FORWARD;
435 }
436 // else if( adrs < 0 || !useTableData ) {
437 // else if( adrs < 0 ) {
438 else if( adrs < 0 || !isRedirectCheck ) { // 4.0.0.0 (2007/11/12) éžé¸æŠžãƒªãƒ?‚¤ãƒ¬ã‚¯ãƒˆè¨±å¯ãƒ•ラグ追åŠ?
439 // useTableData = false; // jsp 以外ã§ã¯ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?
440 return REDIRECT;
441 }
442 else if( rowCount == 1 ) {
443 return REDIRECT;
444 }
445 else if( rowCount == 0 ) {
446 return COUNT_0;
447 }
448 else {
449 return COUNT_N;
450 }
451 }
452
453 /**
454 * ã€TAGã€‘é¸æŠžè¡Œãƒ‡ãƒ¼ã‚¿ã‚’ã?URL 引数ã«è¿½åŠ?™ã‚?true)ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
455 *
456 * @og.tag
457 * é¸æŠžã•れ㟠DBTableModel 㮠行データをãã®ã¾ã¾ã€URL 㮠引数ã«è¿½åŠ?—ã¦
458 * 転é€ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã§ãるフラグã€useTableData 属æ?を追åŠ?—ã¾ã™ã?
459 * åˆæœŸå€¤ã¯ã€false (äº’æ›æ€§ã®ç‚º)ã§ã™ã?
460 * ãªãŠã?SubmitTag(サブミãƒ?ƒˆãƒœã‚¿ãƒ³ã‚¿ã‚°)ã§ã€gamenIdãŒæŒ‡å®šã•れãŸå ´åˆã?
461 * ã¤ã¾ã‚Šã?ä»–ã?フォルãƒ?«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã•れãŸå ´åˆã?ã¿ã€æœ‰åйã«ãªã‚Šã¾ã™ã?
462 * 自åˆ??身ã®ãƒ•ォルãƒ??ã§ã¯ã€forward ãŒä½¿ç”¨ã•れるãŸã‚ã?使ãˆã¾ã›ã‚“ã€?
463 *
464 * @og.rev 3.5.5.2 (2004/04/02) æ–°è¦è¿½åŠ?
465 * @og.rev 3.5.5.8 (2004/05/20) å†?ƒ¨ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map ã‚’å‚ç…§ã§ãるよã†ã«ã™ã‚‹ã€?
466 *
467 * @param flag é¸æŠžè¡Œãƒ‡ãƒ¼ã‚¿ã‚’ä½¿ç”¨ã™ã‚‹(true)/ã—ãªã?false)
468 */
469 // public void setUseTableData( final String flag ) {
470 // useTableTemp = nval( getRequestParameter( flag ),useTableTemp );
471 // }
472
473 /**
474 * ã€TAGã€?通常使ã?¾ã›ã‚“)sessionã‹ã‚‰æ‰?¾—ã™ã‚?DBTableModelオブジェクトã? ID
475 * (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
476 *
477 * @og.tag
478 * 表示処ç?¾Œã«??å†?ƒ¨ãƒã‚¤ãƒ³ã‚¿ã‚’æ›¸ãæ›ãˆãŸ)DBTableModelオブジェクトを
479 * åŒã˜ã‚ーã§ã€sessionã«ç™»éŒ²ã—ã¾ã™ã?
480 * (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
481 *
482 * @og.rev 3.5.5.2 (2004/04/02) æ–°è¦è¿½åŠ?
483 * @og.rev 3.5.5.8 (2004/05/20) å†?ƒ¨ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map ã‚’å‚ç…§ã§ãるよã†ã«ã™ã‚‹ã€?
484 *
485 * @param id sessionã‹ã‚‰æ‰?¾—ã™ã‚‹æ™‚ã® ID
486 */
487 public void setTableId( final String id ) {
488 // 注æ„?引数ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ãŒç„¡ã‘れã°ã€è?åˆ??身({@XXX}å½¢å¼?ã‚’å?ã‚»ãƒ?ƒˆã™ã‚‹ã€?
489 tableIdTemp = nval( getRequestParameter( id ),id );
490 }
491
492 /**
493 * æŒ?®šã?スコープã?å†?ƒ¨ã‚ャãƒ?‚·ãƒ¥æƒ??ã«ã€DBTableModel ã®é¸æŠžã•れãŸå€¤ã‚’登録ã—ã¾ã™ã?
494 *
495 * è¤?•°é¸æŠžè¡ŒãŒå˜åœ¨ã™ã‚‹å ´åˆã?ã€å?é 行を処ç?—ã¾ã™ã?ãŸã ã—ã?action="APPEND"ã®
496 * å ´åˆã?ã€separator属æ?ã§æŒ?®šã•ã‚ŒãŸæ–?—を使用ã—ã¦ã€??çµã—ã¾ã™ã?
497 *
498 * @og.rev 3.5.5.2 (2004/04/02) æ–°è¦ä½œæ?
499 * @og.rev 3.5.5.5 (2004/04/23) URLã«é€£çµã™ã‚‹DBTableModelã®ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã?
500 * @og.rev 3.8.0.4 (2005/08/08) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã—ã¦ã?Ÿå‡¦ç?‚’䏿¢ã—ã¾ã™ã?
501 * @og.rev 3.8.0.8 (2005/10/03) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã—ã¦ã?Ÿå‡¦ç?‚’復活ã—ã¾ã™ã?
502 * @og.rev 3.8.5.1 (2006/04/28) vals="[カラãƒ?]" ã¨ã?†å¼•æ•°ã‚’å?ç?§ãる機è?を追åŠ??
503 * @og.rev 3.8.5.1 (2006/04/28) dbkeys ã?null ã®å ´åˆã«å…¨ä»¶å–å¾—ã™ã‚‹ã‹ã©ã?‹ã‚?COMMON_FORWARD_DBKEYS_NULL_ALL ã§æŒ?®šã—ã¾ã™ã?
504 * @og.rev 4.0.0.0 (2007/05/23) tableId ã‚’ã“ã®ãƒ¡ã‚½ãƒ?ƒ‰å†?§æ±‚ã‚ã¾ã™ã?
505 *
506 * @return DBTableModelã®é¸æŠžã•れãŸå€¤ã®æ–?—å?
507 */
508 private String getTableUrlData() {
509 String tableId = nval( getSubmitRequestParameter( tableIdTemp ),HybsSystem.TBL_MDL_KEY );
510
511 DBTableModel table = (DBTableModel)getSessionAttribute( tableId );
512
513 String dbkeysUrl = "";
514 String tblkeysUrl = "";
515
516 if( table != null ) {
517 String[] keys = null;
518 String[] vals = null;
519 if( dbkeys != null ) {
520 keys = StringUtil.csv2Array( dbkeys );
521 vals = new String[keys.length];
522 for( int i=0; i<keys.length; i++ ) {
523 int clmNo = table.getColumnNo( keys[i] );
524 vals[i] = table.getValue(rowNo,clmNo);
525 }
526 }
527
528 dbkeysUrl = XHTMLTag.urlEncode( keys, vals );
529
530 // 3.8.5.1 (2006/04/28) vals="[カラãƒ?]" ã¨ã?†å¼•æ•°ã‚’å?ç?§ãる機è?を追åŠ??
531 int size = submitTableMap.size();
532 if( size > 0 ) {
533 @SuppressWarnings("rawtypes")
534 Map.Entry[] entry = submitTableMap.entrySet().toArray( new Map.Entry[size] );
535
536 String[] tblkeys = new String[size];
537 String[] tblvals = new String[size];
538
539 for( int i=0; i<size; i++ ) {
540 tblkeys[i] = (String)entry[i].getKey();
541 String temp = (String)entry[i].getValue();
542 int clmNo = table.getColumnNo( temp );
543 tblvals[i] = table.getValue( rowNo,clmNo );
544 }
545 tblkeysUrl = XHTMLTag.urlEncode( tblkeys, tblvals );
546 }
547 }
548
549 String rtn = dbkeysUrl;
550
551 if( tblkeysUrl.length() > 0 ) {
552 if( rtn.length() > 0 ) {
553 rtn += "&" + tblkeysUrl;
554 }
555 else {
556 rtn = tblkeysUrl ;
557 }
558 }
559 return rtn ;
560 }
561
562 /**
563 * ã€TAG】DBã‚ーをCSV å½¢å¼ã§ã‚»ãƒ?ƒˆã—ã¾ã™ã?
564 *
565 * @og.tag
566 * URI ã®å¼•æ•°ã«ã‚»ãƒ?ƒˆã™ã‚‹ã‚ーã‚?CSV å½¢å¼ã§ã‚»ãƒ?ƒˆã—ã¾ã™ã?
567 * ã“ã“ã®æŒ?®šã?,DBTableModel 上ã?ãƒ??ã‚¿ã‚’å–り込ã¿ã¾ã™ã?
568 *
569 * @og.rev 3.5.5.5 (2004/04/23) URLã«é€£çµã™ã‚‹DBTableModelã®ã‚«ãƒ©ãƒ?‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã?
570 * @og.rev 3.5.5.8 (2004/05/20) å†?ƒ¨ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map ã‚’å‚ç…§ã§ãるよã†ã«ã™ã‚‹ã€?
571 *
572 * @param key DBã‚ー(CSV å½¢å¼?
573 */
574 public void setDbkeys( final String key ) {
575 // 注æ„?引数ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ãŒç„¡ã‘れã°ã€è?åˆ??身({@XXX}å½¢å¼?ã‚’å?ã‚»ãƒ?ƒˆã™ã‚‹ã€?
576 dbkeysTemp = nval( getRequestParameter( key ),key ) ;
577 }
578
579 /**
580 * å†?ƒ¨ã®ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map よりã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆãƒ‘ラメータより値をè¨å®šã—ã¾ã™ã?
581 *
582 * submitã‚¿ã‚°ã® keys,vals よりé€ä¿¡ã•れãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆå?ã¯ã€ã“ã®ã‚¯ãƒ©ã‚¹ã§
583 * 処ç?•れã?å†?ƒ¨ã®ä»®æƒ³ãƒªã‚¯ã‚¨ã‚¹ãƒ?Map ã«ä¿å˜ã•れã¾ã™ã?
584 * 通常ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆè¨å®šæ™‚点ã§ã¯ã€ã“ã®å€¤ã¯å–り出ã™ã“ã¨ãŒå?æ¥ãªã?‚ºã€?
585 * Map ã«ä¿å?getForwardURI 処ç?§è¨å®?ã•れãŸå¾Œã«ã€å¼•ã出ã—ã¾ã™ã?
586 *
587 * @og.rev 3.5.5.8 (2004/05/20) æ–°è¦ä½œæ?
588 *
589 * @param key DBã‚ー(CSV å½¢å¼?
590 *
591 * @return 仮想リクエスãƒ?Map ã‚’åæ˜?•ã›ãŸã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆå?
592 */
593 private String getSubmitRequestParameter( final String key ) {
594 String rtn = key;
595
596 // 変数ã?"{@XXXX}" ã®å ´åˆã?ã¿å¯¾å¿?
597 if( key != null && key.startsWith( "{@" ) && key.charAt(key.length()-1) == '}' ) {
598 rtn = submitRequestMap.get( key.substring( 2,key.length()-1 ) );
599 }
600
601 return rtn;
602 }
603
604 /**
605 * ã€TAG】éžé¸æŠžçŠ¶æ…‹ã?å ´åˆã«forwardを許å¯ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
606 *
607 * @og.tag
608 * åˆæœŸå€¤ã¯trueãŒè¨å®šã•れã¦ã?¾ã?
609 * falseã«ã™ã‚‹ã¨è¨±å¯ã•れã¾ã?
610 *
611 * @og.rev 4.0.0.0 (2007/11/09) æ–°è¦ä½œæ?
612 *
613 * @param flag éžé¸æŠžçŠ¶æ…‹ã?forwardã‚’è¨±å¯ [true:ä¸è¨±å¯/false:許å¯]
614 */
615 public void setUseRedirectCheck(final String flag) {
616 isRedirectCheck = nval( getRequestParameter( flag ),isRedirectCheck );
617 }
618
619 // private boolean isUseRedirectCheck() {
620 // return isRedirectCheck;
621 // }
622
623 /**
624 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
625 *
626 * @og.rev 4.3.1.1 (2008/08/23) æ–°è¦è¿½åŠ?
627 * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクトã?ã€ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã•れã¾ã›ã‚“ã€?
628 *
629 * @param strm ObjectOutputStreamオブジェク�
630 * @throws IOException シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
631 */
632 private void writeObject( final ObjectOutputStream strm ) throws IOException {
633 strm.defaultWriteObject();
634 }
635
636 /**
637 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
638 *
639 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã?
640 *
641 * @og.rev 4.3.1.1 (2008/08/23) æ–°è¦è¿½åŠ?
642 * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクトã?ã€ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã•れã¾ã›ã‚“ã€?
643 *
644 * @param strm ObjectInputStreamオブジェク�
645 * @see #release2()
646 * @throws IOException シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
647 * @throws ClassNotFoundException クラスを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ããªã‹ã£ãŸå?å?
648 */
649 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
650 strm.defaultReadObject();
651 submitRequestMap = new HashMap<String,String>();
652 submitTableMap = new HashMap<String,String>();
653 }
654
655 /**
656 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
657 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
658 *
659 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?表ç¾
660 */
661 @Override
662 public String toString() {
663 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
664 .println( "VERSION" ,VERSION )
665 .println( "rowCount" ,rowCount )
666 // .println( "useTableData" ,useTableData )
667 // .println( "tableId" ,tableId )
668 .println( "rowNo" ,rowNo )
669 .println( "dbkeys" ,dbkeys )
670 // .println( "useTableTemp" ,useTableTemp )
671 .println( "tableIdTemp" ,tableIdTemp )
672 .println( "dbkeysTemp" ,dbkeysTemp )
673 .println( "Other..." ,getAttributes().getAttribute() )
674 .fixForm().toString() ;
675 }
676 }