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 static org.opengion.fukurou.util.StringUtil.nval; 019 020 import java.io.IOException; 021 import java.io.ObjectInputStream; 022 import java.io.ObjectOutputStream; 023 024 import javax.mail.internet.MimeUtility; 025 import javax.servlet.ServletException; 026 import javax.servlet.http.HttpServletRequest; 027 import javax.servlet.http.HttpServletResponse; 028 029 import org.opengion.fukurou.util.LogWriter; 030 import org.opengion.fukurou.util.StringUtil; 031 import org.opengion.fukurou.util.XHTMLTag; 032 import org.opengion.hayabusa.common.HybsSystem; 033 import org.opengion.hayabusa.common.HybsSystemException; 034 import org.opengion.hayabusa.db.DBTableModel; 035 import org.opengion.hayabusa.resource.GUIInfo; 036 037 /** 038 * 制御を別の画面にフォワードする?合に使用するタグで?通常は、entry.jsp で使用しま?? 039 * 040 * フォワード時に、指定?引数をセ?できます? 041 * 042 * @og.formSample 043 * ●形式?lt;og:forward page="…" gamenId="[…]" /> 044 * ●body?な? 045 * 046 * ●Tag定義?? 047 * <og:forward 048 * gamenId 【TAG】gamenId 属?を登録しま? 049 * page ○?TAG】転送?URLを指定します?(??) 050 * keys 【TAG】キー?CSV 形式でセ?しま? 051 * vals 【TAG】キーに対応する??CSV 形式でセ?しま? 052 * dbkeys 【TAG】DBキーをCSV 形式でセ?しま? 053 * scope 【TAG】キャ?ュする場合?スコープ[request/page/session/applicaton]を指定しま?初期値:session) 054 * useRedirect 【TAG】response.sendRedirect するかど?[true/false]を指定しま?初期値:false) 055 * target 【TAG】サブミ?先??を表示させるフレー??また?ウィンドウの名前を指定しま? 056 * filename 【TAG】ファイル転送時にファイル名?別名を?しま?初期値:null) 057 * noTransition 【TAG?通常は使?せん)画面遷移を行わな?式?登録方法を使用するかを?しま? 058 * useAjaxSubmit 【TAG?通常は使?せん)ajaxを利用したsubmitを利用するかど?を指定しま? 059 * redirectEncode 【TAG?通常は使?せん)useRedirect=true時に 日本語を含?送?(page)をバイナリ変換するとき?コード名[UTF-8/Windows-31J]など(初期値:null) 060 * debug 【TAG】デバッグ??を?力するかど?[true/false]を指定しま?初期値:false) 061 * /> 062 * 063 * ●使用? 064 * <og:forward 065 * page = "転送?URLを指定します?(??)" 066 * dbkeys = "DBキーをCSV 形式でセ?します?" 067 * keys = "キー?CSV 形式でセ?します?" 068 * vals = "キーに対応する??CSV 形式でセ?します?" 069 * scope = "キャ?ュする場合?スコー?request,page,session,applicaton)を指定しま?初期値:session)? 070 * gamenId = "gamenId 属?を登録します?" 071 * useRedirect = "useRedirect 属?を登録します?" 072 * filename = "ファイル転送時にファイル名を?する?合に設定します?" 073 * target = "taregt 属?を登録します?" 074 * noTransition = "実際にforwardせずに、id="forwardUrl"属?のbody部?遷移先?URLを?力します?(画面遷移なしモード時に使用しま?" 075 * /> 076 * 077 * @og.group 画面制御 078 * 079 * @version 4.0 080 * @author Kazuhiko Hasegawa 081 * @since JDK5.0, 082 */ 083 public class ForwardTag extends CommonTagSupport { 084 //* こ?プログラ??VERSION??を設定します? {@value} */ 085 private static final String VERSION = "5.6.5.0 (2013/06/07)" ; 086 087 private static final long serialVersionUID = 565020130607L ; 088 089 private transient DBTableModel table = null; 090 private String tableId = HybsSystem.TBL_MDL_KEY; 091 private String page = null; 092 private String keys = null; 093 private String dbkeys = null; 094 private String[] vals = null; 095 private String gamenId = null; // 3.5.4.9 (2004/02/25) 追? 096 private boolean useRedirect = false; // 3.5.6.6 (2004/08/23) 追? 097 private String target = null; // 3.8.0.4 (2005/08/08) 追? 098 private String filename = null; // 4.0.0 (2005/11/30) 追? 099 private static final String disposition = "inline"; // 固? 100 private boolean noTransition= false; // 4.3.3.0 (2008/10/01) 追? 101 private boolean useAjaxSubmit = false; // 4.3.8.0 (2009/08/01) 追? 102 // private boolean useEncodeRedirect = true; // 5.6.5.0 (2013/06/07) 追??即? 103 private String redirectEncode = null; // 5.6.5.0 (2013/06/07) 追? 104 105 /** 106 * Taglibの終?グが見つかったときに処??doEndTag() ?オーバ?ライドします? 107 * 108 * @og.rev 2.1.0.0 (2002/10/11) 戻り?の先?の "?" を追?な??変更? 109 * @og.rev 3.0.1.3 (2003/03/11) 直接転送した?合?整合?を取る為の対応? 110 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?release2() ?doEndTag()で呼ぶ? 111 * @og.rev 3.1.2.0 (2003/04/07) ソースコード中の固定?を?定義ファイルを使用するように変更する? 112 * @og.rev 3.5.4.9 (2004/02/25) gamenId を指定して、フォワードできるようにします? 113 * @og.rev 3.5.6.6 (2004/08/23) useRedirect 属?を追?ます? 114 * @og.rev 4.3.3.0 (2008/10/01) noTransition 属?を追?ます? 115 * @og.rev 4.3.7.1 (2009/06/08) target属?に絶対パス及?"_"で始まる予?を?できるようにします? 116 * @og.rev 4.3.8.0 (2009/08/01) useAjaxSubmit対応?noTransition値取得メソ?名変更 117 * @og.rev 5.0.0.4 (2009/10/01) 画面遷移なし登録で戻った際に?行が選択されるバグを修正 118 * @og.rev 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う? 119 * @og.rev 5.1.6.0 (2010/05/01) IE以外?、MIMEエンコードする?(RFC2231に従う) 120 * @og.rev 5.1.7.0 (2010/06/01) 画面IDをパラメーターに付加する? 121 * @og.rev 5.1.7.0 (2010/06/01) 遷移先がJSP以外?場合?、フォワード?ージのキャ?ュをしな?? 122 * @og.rev 5.1.8.0 (2010/07/01) httpが指定されて?場合に、?身の画面IDが付加されるバグを修正 123 * @og.rev 5.3.8.0 (2011/08/01) ファイル名指定でIEの場合?URLエンコードすると途中で?るた?IE7のバグ)、Shift_JIS(WIndows-31J)で直接?する? 124 * @og.rev 5.6.5.0 (2013/06/07) redirectEncode 属?を追?ます? 125 * 126 * @return 後続???? 127 */ 128 @Override 129 public int doEndTag() { 130 debugPrint(); // 4.0.0 (2005/02/28) 131 // noTransition = isNoTransitionRequest() || noTransition; // 4.3.3.0 (2008/10/01) 追? 132 // noTransition = isNoTransitionSession() || noTransition; // 4.3.8.0 (2009/08/01) メソ?名変更 133 // useAjaxSubmit = isAjaxSubmitSession() || useAjaxSubmit; // 4.3.8.0 (2009/08/01) 追? 134 noTransition = isNoTransitionRequest(); // 5.1.3.0 (2010/02/01) 135 useAjaxSubmit = isAjaxSubmitRequest(); // 5.1.3.0 (2010/02/01) 136 137 String urlEnc = getUrlEncode(); 138 String fwdUrl = makeGamenLink(); // 3.5.4.9 (2004/02/25) 139 140 HttpServletResponse response = (HttpServletResponse)pageContext.getResponse(); 141 try { 142 String url = response.encodeRedirectURL( fwdUrl ); // 3.5.4.9 (2004/02/25) 143 144 if( filename != null ) { 145 // 5.1.6.0 (2010/05/01) IE以外?、MIMEエンコードする?(RFC2231に従う) 146 if( ( (HttpServletRequest)pageContext.getRequest() ).getHeader( "User-Agent" ).indexOf( "MSIE" ) == -1 ) { 147 filename = MimeUtility.encodeWord( filename, "UTF-8", "B" ); 148 } 149 else { 150 // 5.3.8.0 (2011/08/01) IEの場合?URLエンコードすると途中で?るた?IE7のバグ)、Shift_JIS(WIndows-31J)で直接?する? 151 // filename = StringUtil.urlEncode( filename ); 152 filename = new String( filename.getBytes("Windows-31J"), "ISO-8859-1" ); 153 } 154 (response).setHeader( "Content-Disposition",disposition + "; filename=\"" + filename + "\"" ); 155 } 156 // 5.1.7.0 (2010/06/01) 画面IDをパラメーターに付加する? 157 // 5.1.8.0 (2010/07/01) httpが指定されて?場合に、?身の画面IDが付加されるバグを修正 158 else { 159 // if( page.endsWith( ".jsp" ) ) { 160 if( !page.startsWith( "http" ) && page.endsWith( ".jsp" ) ) { 161 if( keys == null || keys.length() == 0 || ( "," + keys + "," ).indexOf( ",GAMENID," ) < 0 ) { 162 if( gamenId != null && gamenId.length() > 0 ) { 163 url = XHTMLTag.addUrlEncode( url, "GAMENID=" + gamenId ); 164 } 165 // useRedirect=trueでGAMENIDを指定せず?../GF9100/index.jsp等と書かれて?場合?対? 166 else if( !useRedirect ) { 167 url = XHTMLTag.addUrlEncode( url, "GAMENID=" + getGUIInfoAttri( "KEY" ) ); 168 } 169 } 170 } 171 } 172 173 // 3.5.6.6 (2004/08/23) useRedirect 属?を追? 174 String url2 = XHTMLTag.addUrlEncode( url , urlEnc ); 175 // 4.3.3.0 (2008/10/01) 追? 176 // if( noTransition ) { 177 if( noTransition || useAjaxSubmit ) { // 4.3.8.0 (2009/08/01) useAjaxSubmitと共用 178 // 5.0.0.4 (2009/10/01) 179 if( noTransition ) { 180 int selRow = nval( getRequestValue( "SEL_ROW" ),-1 ); 181 if( selRow > 0 ) { 182 url2 = XHTMLTag.addUrlEncode( url2, "SEL_ROW=" + selRow ); 183 } 184 } 185 jspPrint( "<div id=\"noTransitionUrl\">" + url2 + "</div>" ); 186 jspPrint( "<div id=\"noTransitionTarget\">" + target + "</div>" ); 187 } 188 // 3.8.0.4 (2005/08/08) target 属?を追?ます? 189 // else if( target != null ) { 190 else if( target != null && target.length() > 0 ) { 191 // 4.3.7.1 (2009/06/08) 192 String src = null; 193 if( target.startsWith( "_b" ) ) { // "_blank" 194 src = "window.open(\"" + url2 + "\", \"_blank\") "; 195 } 196 else { 197 String frameTop = ""; 198 if( target.indexOf('.') < 0 ) { frameTop = "top."; } 199 src = frameTop + target + ".location.href=\"" + url2 + "\"" + HybsSystem.CR; 200 } 201 // String script = "<script language=\"JavaScript\" ><!-- " + HybsSystem.CR 202 String script = "<script type=\"text/javascript\" ><!-- " + HybsSystem.CR 203 + src + HybsSystem.CR 204 + "// --></script>" ; 205 jspPrint( script ); 206 } 207 else if( useRedirect ) { 208 // 5.6.5.0 (2013/06/07) redirectEncode 属?追? 209 if( redirectEncode != null ) { 210 url2 = new String( url2.getBytes( redirectEncode ), "ISO-8859-1" ); 211 } 212 response.sendRedirect( url2 ); 213 } 214 else { 215 pageContext.forward( url2 ); 216 } 217 } catch(IOException ex) { 218 String errMsg = "フォワー?リ?レクトでIOエラーが発生しました? 219 + HybsSystem.CR 220 + fwdUrl + "?" + urlEnc ; 221 throw new HybsSystemException( errMsg,ex ); // 3.5.5.4 (2004/04/15) 引数の並び?更 222 } catch( ServletException ex) { 223 String errMsg = "フォワー?リ?レクトでServletエラーが発生しました? 224 + HybsSystem.CR 225 + fwdUrl + "?" + urlEnc ; 226 throw new HybsSystemException( errMsg,ex ); // 3.5.5.4 (2004/04/15) 引数の並び?更 227 } 228 229 // 3.0.1.3 (2003/03/11) forward で直接転送した?合?整合?を取る為の対応? 230 // 5.1.7.0 (2010/06/01) 遷移先がJSP以外?場合?、フォワード?ージのキャ?ュをしな?? 231 if( fwdUrl != null && fwdUrl.endsWith( ".jsp" ) ) { 232 setSessionAttribute( HybsSystem.FORWARD_PAGE_KEY, fwdUrl ); // 3.5.4.9 (2004/02/25) 233 } 234 235 return(SKIP_PAGE); // ペ?ジの残りの処?行わな?? 236 } 237 238 /** 239 * タグリブオブジェクトをリリースします? 240 * キャ?ュされて再利用される?で、フィールド?初期設定を行います? 241 * 242 * @og.rev 2.0.0.4 (2002/09/27) カスタ?グの release() メソ?を?追? 243 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?release2() ?doEndTag()で呼ぶ? 244 * @og.rev 3.5.4.9 (2004/02/25) 画面ID属?(gamenId)を追? 245 * @og.rev 3.8.5.0 (2006/03/06) filename 属?を追?ます? 246 * @og.rev 4.3.3.0 (2008/10/01) noTransition 属?を追?ます? 247 * @og.rev 5.6.5.0 (2013/06/07) redirectEncode 属?を追?ます? 248 * 249 */ 250 @Override 251 protected void release2() { 252 super.release2(); 253 tableId = HybsSystem.TBL_MDL_KEY; 254 page = null; 255 keys = null; 256 dbkeys = null; 257 vals = null; 258 table = null; 259 gamenId = null; 260 useRedirect = false; // 3.5.6.6 (2004/08/23) 追? 261 target = null; // 3.8.0.4 (2005/08/08) 追? 262 filename = null; 263 noTransition= false; // 4.3.3.0 (2008/10/01) 追? 264 useAjaxSubmit = false; // 4.3.8.0 (2009/08/01) 追? 265 redirectEncode = null; // 5.6.5.0 (2013/06/07) 追? 266 } 267 268 /** 269 * keys 属? を?に、request??より values の値を取り込?? 270 * 271 * keys属?は キー??がカンマ区?になって?為,ばらして 272 * values属?の配?に?づつ設定して?ます? 273 * 274 * @og.rev 3.1.7.0 (2003/05/02) 戻る?タン用のBACK_GAMENID を?引数に追?ます? 275 * @og.rev 3.1.8.0 (2003/05/16) 戻る?タン用のBACK_GAMENID の自動登録を?します? 276 * @og.rev 4.0.0.0 (2005/01/31) getParameterRows() を使用するように変更 277 * 278 * @return URLエンコードされた?? 279 */ 280 private String getUrlEncode() { 281 String[] dbkey = StringUtil.csv2Array( dbkeys ); 282 String[] key = StringUtil.csv2Array( keys ); 283 284 // int dbCount = (dbkey != null) ? dbkey.length : 0 ; 285 // int count = (key != null) ? key.length : 0 ; 286 int dbCount = dbkey.length; 287 int count = key.length ; 288 289 String[] allKey = new String[ dbCount + count ]; 290 String[] allval = new String[ dbCount + count ]; 291 292 int[] rowNo = getParameterRows(); // 4.0.0 (2005/01/31) 293 if( dbCount > 0 && dbkey[0] != null && dbkey[0].length() > 0 && rowNo.length > 0 ) { 294 table = (DBTableModel)getObject( tableId ); 295 if( table != null ) { 296 for( int i=0; i<dbCount; i++ ) { 297 allKey[i] = dbkey[i]; 298 allval[i] = table.getValue(rowNo[0],table.getColumnNo( dbkey[i] )); 299 } 300 } 301 } 302 303 if( count > 0 ) { 304 for( int i=0; i<count; i++ ) { 305 allKey[i+dbCount] = key[i]; 306 allval[i+dbCount] = vals[i]; 307 } 308 } 309 310 return XHTMLTag.urlEncode( allKey,allval ); 311 } 312 313 /** 314 * 【TAG】転送?URLを指定します? 315 * 316 * @og.tag 転送?URLを指定します? 317 * 318 * @param url 転送?URL 319 */ 320 public void setPage( final String url ) { 321 page = getRequestParameter( url ); 322 } 323 324 /** 325 * 【TAG】DBキーをCSV 形式でセ?します? 326 * 327 * @og.tag 328 * URI の引数にセ?するキー?CSV 形式でセ?します? 329 * ここの??,DBTableModel 上???タを取り込みます? 330 * 331 * @param key DBキー(CSV 形? 332 */ 333 public void setDbkeys( final String key ) { 334 dbkeys = getRequestParameter( key ) ; 335 } 336 337 /** 338 * 【TAG】キー?CSV 形式でセ?します? 339 * 340 * @og.tag 341 * URI の引数にセ?するキー?CSV 形式でセ?します? 342 * 343 * @param key キー(CSV 形? 344 */ 345 public void setKeys( final String key ) { 346 keys = getRequestParameter( key ) ; 347 } 348 349 /** 350 * 【TAG】キーに対応する??CSV 形式でセ?します? 351 * 352 * @og.tag 353 * URI の引数にセ?する値?CSV 形式でセ?します? 354 * ?方法?、CSV変数を?に?してから、getRequestParameter で値を取得します? 355 * こうしな???タ自身にカンマを持って?場合に?をミスる為です? 356 * 357 * @og.rev 3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用 358 * 359 * @param val 値(CSV 形? 360 */ 361 public void setVals( final String val ) { 362 vals = getCSVParameter( val ); 363 364 // 先に?しな???タ自身にカンマを持って?場合に?をミスる? 365 } 366 367 /** 368 * 画面??とpage から、フォワードするU??を作?します? 369 * page ?null の場合?、index.jsp に転送されます? 370 * 371 * @og.rev 3.5.4.9 (2004/02/25) 新規追? 372 * @og.rev 3.5.5.0 (2004/03/12) URLを求める?に、GUIInfo#getRealAddress() を使用する? 373 * @og.rev 4.0.0.0 (2005/01/31) GUIInfoの実アドレスのパラメータを?慮する? 374 * 375 * @return フォワードするU??(転送?URL) 376 */ 377 private String makeGamenLink() { 378 if( page == null ) { page = "index.jsp"; } 379 380 if( gamenId == null || gamenId.length() == 0 ) { return page; } 381 382 GUIInfo guiInfo = getGUIInfo( gamenId ); 383 if( guiInfo == null ) { // 見つからな??合?、転送しな? 384 LogWriter.log( "Forward[" + gamenId + "]先にはアクセス不可です?" ); 385 return page; 386 } 387 388 String address = guiInfo.getRealAddress( page ); 389 String link = getRequestParameter( address ); 390 391 // Ver 4.0.0 (2007/06/12) gamenId を使用する場合?、useRedirect = true をセ? 392 useRedirect = true; 393 return link; 394 } 395 396 /** 397 * 【TAG】gamenId 属?を登録します? 398 * 399 * @og.tag 400 * gamenId 属?は、画面IDをキーに、実アドレスを求める?に使用します? 401 * 画面IDが指定された場合?、実アドレスに変換する。指定されな??合?? 402 * page 属?をそのままリ?レクトアドレスとします? 403 * gamenId を指定した?合?、このuseRedirect属?に関係なく?Redirect されます? 404 * 405 * @og.rev 3.5.4.9 (2004/02/25) 新規追? 406 * 407 * @param id gamenId 属? 408 * @see #setUseRedirect( String ) 409 */ 410 public void setGamenId( final String id ) { 411 gamenId = nval( getRequestParameter( id ),gamenId ); 412 } 413 414 /** 415 * 【TAG】response.sendRedirect するかど?[true/false]を指定しま?初期値:false)? 416 * 417 * @og.tag 418 * useRedirect 属?は、URLの転送方式を?できます? 419 * 通常は、pageContext.forward しますが、この属?に true ? 420 * 設定すると、response.sendRedirect します? 421 * gamenId を指定した?合?、この属?に関係なく?Redirect されます? 422 * 初期値は、false (forward) です? 423 * 424 * @og.rev 3.5.6.6 (2004/08/23) 新規追? 425 * 426 * @param flag useRedirect 属? [false:forwrd/true:redirect] 427 * @see #setGamenId( String ) 428 */ 429 public void setUseRedirect( final String flag ) { 430 useRedirect = nval( getRequestParameter( flag ),useRedirect ); 431 } 432 433 /** 434 * 【TAG】サブミ?先??を表示させるフレー??また?ウィンドウの名前を指定します? 435 * 436 * @og.tag サブミ?先?フレー?(ターゲ?属?)を設定します? 437 * 438 * @og.rev 3.8.0.4 (2005/08/08) 新規追? 439 * 440 * @param flag サブミ?先??のフレー?(ターゲ?属?) 441 */ 442 public void setTarget( final String flag ) { 443 target = nval( getRequestParameter( flag ),target ); 444 } 445 446 /** 447 * 【TAG】ファイル転送時にファイル名?別名を?しま?初期値:null)? 448 * 449 * @og.tag 450 * ファイルを転送する?合に、オープンさせるファイル名を?します? 451 * ?しな??合?、フォラード前に呼び出されたアドレスがそのまま使用されます? 452 * 453 * @param name ファイル? 454 */ 455 public void setFilename( final String name ) { 456 filename = nval( getRequestParameter( name ),filename ); 457 } 458 459 /** 460 * 【TAG?通常は使?せん)画面遷移を行わな?式?登録方法を使用するかを?します? 461 * 462 * @og.tag 463 * 画面遷移なし?登録を行うかど?を指定します? 464 * trueが指定された場合?forwardタグでは、実際の画面遷移は行わずに、forward先? 465 * URL?div id="noTransitionUrl">[URL]</div>の形でHTMLとして出力し、JavaScript側で 466 * 実際の画面遷移を発生させます?target属?は<div id="noTransitionTarget">[TARGET]</div>で 467 * 出力されます? 468 * 469 * こ?値は、og:headタグで設定?、また?前画面からの値を継承するため??常、この属?ではセ?しません? 470 * 471 * @og.rev 4.3.3.0 (2008/10/01) 新規追? 472 * @og.rev 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う? 473 * 474 * @param noTrnstn 画面遷移を行わな?式?登録方法を使用する? 475 */ 476 public void setNoTransition( final String noTrnstn ) { 477 // noTransition = nval( getRequestParameter( noTrnstn ), noTransition ); 478 setNoTransitionRequest( nval( getRequestParameter( noTrnstn ), isNoTransitionRequest() ) ); 479 } 480 481 /** 482 * 【TAG?通常は使?せん)ajaxを利用したsubmitを利用するかど?を指定します? 483 * 484 * @og.tag 485 * ajaxを利用したSubmit処?行うかど?を指定します? 486 * setNoTransitionをtrueにした場合と同様?処?行います? 487 * (forwardせずにURLをDIVタグで出力す? 488 * 489 * こ?値は、og:headタグで設定?、また?前画面からの値を継承するため??常、この属?ではセ?しません? 490 * 491 * @og.rev 4.3.8.0 (2009/08/01) 新規追? 492 * @og.rev 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行う? 493 * 494 * @param ajaxSubmit ajaxを利用したsubmitを利用するかど? 495 */ 496 public void setUseAjaxSubmit( final String ajaxSubmit ) { 497 // useAjaxSubmit = nval( getRequestParameter( ajaxSubmit ), useAjaxSubmit ); 498 setAjaxSubmitRequest( nval( getRequestParameter( ajaxSubmit ), isAjaxSubmitRequest() ) ); 499 } 500 501 /** 502 * 【TAG?通常は使?せん)useRedirect=true時に 日本語を含?送?(page)をバイナリ変換するとき?コード名[UTF-8/Windows-31J]など(初期値:null) 503 * 504 * @og.tag 505 * 日本語ファイル名を持つ URL ?useRedirect で転送する?合に、転送?(page)をバイナリ変換しな?、転送できな?ースがあります? 506 * こ?あたり?、ブラウザにも依存する?で、既存?処?影響しな?に、このパラメータを使用する場合?み 507 * 処?実行します? 508 * IEでの日本語ファイル転送で、うまくいかな??合?、暫定?置です? 509 * IEの場合?、redirectEncode="UTF-8" で、日本語ファイルを転送できます? 510 * ただし?useRedirect=true時に filename 属?によるファイル名?書き換え???できませんので、ご注意く??? 511 * 初期値は、null で、バイナリエンコードしません。(互換性ありの状態です??? 512 * 513 * @og.rev 5.6.5.0 (2013/06/07) 新規追? 514 * 515 * @param redEnc URL ?転送する?合に、日本語を含?送?(page)をバイナリ変換するとき?コード名 516 */ 517 public void setRedirectEncode( final String redEnc ) { 518 redirectEncode = nval( getRequestParameter( redEnc ), redirectEncode ); 519 } 520 521 /** 522 * シリアライズ用のカスタ?リアライズ書き込みメソ? 523 * 524 * @og.rev 4.0.0.0 (2006/09/31) 新規追? 525 * @serialData 526 * 527 * @param strm ObjectOutputStreamオブジェク? 528 */ 529 private void writeObject( final ObjectOutputStream strm ) throws IOException { 530 strm.defaultWriteObject(); 531 } 532 533 /** 534 * シリアライズ用のカスタ?リアライズ読み込みメソ? 535 * 536 * ここでは、transient 宣?れた?変数の??初期化が?なフィールド?み設定します? 537 * 538 * @og.rev 4.0.0.0 (2006/09/31) 新規追? 539 * @serialData 540 * 541 * @param strm ObjectInputStreamオブジェク? 542 * @see #release2() 543 */ 544 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 545 strm.defaultReadObject(); 546 } 547 548 /** 549 * こ?オブジェクト???表現を返します? 550 * 基本???目?使用します? 551 * 552 * @return こ?クラスの??表現 553 */ 554 @Override 555 public String toString() { 556 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 557 .println( "VERSION" ,VERSION ) 558 .println( "tableId" ,tableId ) 559 .println( "page" ,page ) 560 .println( "keys" ,keys ) 561 .println( "dbkeys" ,dbkeys ) 562 .println( "vals" ,vals ) 563 .println( "gamenId" ,gamenId ) 564 .println( "useRedirect" ,useRedirect) 565 .println( "target" ,target ) 566 .println( "filename" ,filename ) 567 .println( "disposition" ,disposition ) 568 .println( "noTransition" ,noTransition ) 569 .println( "useAjaxSubmit" ,useAjaxSubmit ) 570 .println( "redirectEncode" ,redirectEncode ) 571 .println( "Other..." ,getAttributes().getAttribute() ) 572 .fixForm().toString() ; 573 } 574 }