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