EZServlet 2001.3.17 に追加された新機能 【注意事項】-------------------- com.ngMAT.HTML.ezscustomtag.ParameterEnumeration com.ngMAT.HTML.ezscustomtag.ParameterToHidden において、パラメタ名、値共にフィルタ処理対象になりました。(ver. 2001.3.15) -------------------- 修正されたバグ com.ngMAT.Common.AttributeParser parse(String,CoolProperties)でパースした際にプロパティ参照がハンドリングされない不具合を修正。(→ HTMLTemplateパース時に標準タグの属性値中のプロパティ参照のハンドリングにも影響) com.ngMAT.Common.Enumration2Iterator hasNext()が正しく動作しない不具合を修正。 com.ngMAT.Common.html.HTMLTemplate loadTemplate(String,String,Properties)で読み込まれたテンプレートにおいて、setTagValueWithTagContent(String)または#value_sw=true属性でセットされる内部テンプレートに文字コードが引き継がれない不具合を修正。(内部テンプレート内で#includeした際に影響) setTagValueWithTagContent(String)または#value_sw=true属性でセットされる内部テンプレート内でもプロパティ参照を有効にした。 com.ngMAT.HTML.ezscustomtag.Parameter #decode及びstyle=qsが指定されていてデコードに失敗した場合にNullPointerExceptionが発生する不具合を修正。 -------------------- 実は2001.3.16で追加されていた新規クラス com.ngMAT.servlet.filter.BadURLEliminator com.ngMAT.tools.test.AbstractTester com.ngMAT.tools.test.SimpleHttpTester com.ngMAT.tools.test.TestDriver -------------------- 追加・修正された機能 com.ngMAT.Common.ArrayUtil 新規クラス com.ngMAT.Common.CoolProperties 新規メソッド:hasValue, isEmpty, getByteProperty, getCharProperty, setProperty(String,char), saveToString, loadFromString, toHashMap システムプロパティCoolProperties.SEARCH_PATHによる相対パス指定ファイルの検索パスリストを指定可能とした。 システムプロパティCoolProperties.DUMP_FILETREE=falseを指定することで、ファイル読み込み時のツリー表示を抑止可能とした。 com.ngMAT.Common.DBOAdapter 新規メソッド:getDBDateStringWithTruncating, getDBDateStringWithTruncating (DBOSQLServerAdapterはSQLServerに日時truncate機能がないため非対応) com.ngMAT.Common.DSV Iterableに対応した。 add(BigDecimal new_item)にてnew_itemがnullの場合でもNullPointerExceptionをthrowせず""(空文字列)として格納するようにした。 com.ngMAT.Common.DSVGenerator 配列を保持するフィールド名の後ろに"#elements"を付加すると、対象フィールドの配列各要素を個別の値として出力するようにした。 com.ngMAT.Common.FixedLengthRecordFormatter com.ngMAT.Common.FixedLengthStringItemSplitter com.ngMAT.Common.IterableEnumeration 新規クラス。 com.ngMAT.Common.Log 新規メソッド:removeStackTraceListener, getStackTraceListeners com.ngMAT.Common.ngmObjectFunction 新規定数:C_DOUBLE_BYTE_SPACE com.ngMAT.Common.StringConstants 新規定数:ALL_HANKAKU_ALPHAS, ALL_HANKAKU_ALNUMS /* まだ com.ngMAT.Common.StringConstants 定数ZENKAKU_VOICED_SOUND_KATAKANA、ZENKAKU_VOICED_SOUND_HIRAGANA、HANKAKU_VOICED_SOUND_KATAKANAに「ヴ」、「ゔ(『ヴ』のひらがな)」、「ヴ」を追加。入力許可対象文字のバリデーション等にこれらの定数を使用している場合は留意が必要。 */ com.ngMAT.Common.StringConverter 新規メソッド:fillLeft、fillRight、fillBoth com.ngMAT.Common.StringUtil 新規メソッド:isHankakuNumber, isHankakuAlpha, trimDoubleByteSpace com.ngMAT.Common.stringfilter.KeywordFilter 使用するプロパティのキーワードを"KeywordFilter.."で始まるものに変更。(これまでの"."で始まるものも有効) プロパティ"Mode"への対応 com.ngMAT.Common.stringfilter.StartsWithFilter 新規クラス com.ngMAT.Common.html.HTMLSpecialCharEntity 新規クラス com.ngMAT.HTML.FileResource プロパティ設定に従ってファイル名拡張子からmime-typeを決定する際、拡張子そのままで取得できなかった場合に、拡張子を小文字化して再試行するようにした。 com.ngMAT.HTML.CustomTag: #nof属性に対応。 com.ngMAT.HTML.HTMLString: 新規メソッドequals。 com.ngMAT.HTML.HTMLTemplate 新規メソッド:decode(既存privateメソッドのpublic公開), setTagValueWithTagContent(String), join(HTMLTemplate), mergeTagValue, setTagValues(HashMap), setTagValue(String,Object) 新規メソッド:setTagValueWithInnerTagContent(Properties,...), setTagValueWithInnerTagContent(ngmObjectFunction,...) テンプレート内に[[#define CustomTag.(tag type).Handler=(handler class name)/]]と記述することで、プロパティHTMLTemplate.CustomTag.(tag type).Handlerの代替定義可能とした。 #num属性を持つタグに対してsetTagValue(String tagname, String value)で値をセットする場合、BigDecimalに変換してからセットする様にした。 com.ngMAT.HTML.InsertionTag 新規メソッド:getParentTemplate, getCodeType, merge 新規属性:#mask_area、#mask_num、#uniq com.ngMAT.HTML.Label 新規コンストラクタ:Label(),Label(String) com.ngMAT.HTML.RepeatableElement 新規属性:element_separator com.ngMAT.HTML.customtag.Now 新規属性offsetに対応した。属性timestamp_formatの代わりにformatでも指定可能とした。 com.ngMAT.HTML.ezscustomtag.NumberSelect #format属性で書式を指定可能とした。 com.ngMAT.HTML.ezscustomtag.AbstractSelect 新規属性:label_position clickable_label、label_positionをプロパティでも指定可能にした。 com.ngMAT.HTML.ezscustomtag.Parameter com.ngMAT.HTML.ezscustomtag.ParameterEnumeration com.ngMAT.HTML.ezscustomtag.ParameterToHidden プロパティEZSCustomtag.DedicatedFilter.For.(カスタムタグクラス名).Classでパラメタ値に対するフィルタを定義可能とした。 com.ngMAT.HTML.ezscustomtag.Parameter 属性#decodeにより、テンプレートで使用可能なデコーダによるデコードに対応(InsertionTagの#decodeと同様)。 属性#value_swに対応。 com.ngMAT.HTML.ezscustomtag.ReqAttributeSetter 新規クラス。プリセットカスタムタグ名はset_req_attr。 com.ngMAT.Mail.SimpleFileAttachedMailMessage 新規メソッド:addFileContent(File),addFileContent(File,String) com.ngMAT.net.HttpCommunicator 新規メソッド:setCookieHandler(), setDebugLog(Log), doPut(), doDelete() 受信したSet-Cookieヘッダの値が空でもエラーにならないようにした。 レスポンスのContent-Lengthが0の場合、ボディの受信処理をスキップする様にした。 com.ngMAT.net.KeyStoreHandler 新規クラス。 com.ngMAT.servlet.EZServletConfig 新規プロパティ:EZServlet.Register.Filter..Class 新規プロパティ:EZServlet.Request.URI.RemoveContextPath 新規プロパティ:EZServlet.TRACE.SEND_ERROR プロパティEZServlet.TemplateVariable.~をそのままの形式でも参照可能とした。 com.ngMAT.servlet.EZServletContext EZServlet.PrivateSession.SessionID.IsSecure=true(デフォルト)の設定においてsecureなチャネルでのアクセスでない場合、プライベートセッションIDをリクエストから取得しないようにした。 EZServlet.PrivateSession.SessionID.IsHttpOnly=true(デフォルト)でプライベートセッションIDにHttpOnly属性を付加するようにした。 新規メソッド:getRegisteredFilter、addCookie (String name, String value, String path, boolean is_secure, boolean is_http_only)、removeAttribute,getPrivateSessionNames com.ngMAT.servlet.filter.HTMLTagFilter 新規クラス。 com.ngMAT.tools.ClassUtil getFieldValue:ネストするフィールドに対応。 新規メソッド:getStaticFieldValue(Class, String), importPublicInstanceFields, exportPublicInstanceFields, toMap, getDeclaredFieldValue com.ngMAT.tools.FileUtil 新規メソッド:getMimeType(String), getMimeType(String), isPdfMimeType(String), isPdfMimeType(File), isImageMimeType(String), isImageMimeType(File) com.ngMAT.tools.HexUtil 新規メソッド:encodeAscii2HexString(byte[],String) com.ngMAT.tools.HTMLUtil com.ngMAT.tools.NetUtil 新規クラス。 com.ngMAT.tools.PeriodicalRoutineRunController 新規プロパティRunner..LogMemoryInfo=trueの指定でメモリ使用状況をログに出力するようにした。 com.ngMAT.tools.ThreadUtil 新規メソッド:runOnceLater com.ngMAT.tools.cipher.EZDesedeHex com.ngMAT.tools.cipher.EZAesHex 新規クラス。