All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.fw.web.handler.NormalizationHandler Maven / Gradle / Ivy

The newest version!
package nablarch.fw.web.handler;

import java.util.Collections;
import java.util.List;
import java.util.Map;

import nablarch.fw.ExecutionContext;
import nablarch.fw.Handler;
import nablarch.fw.web.HttpRequest;
import nablarch.fw.web.handler.normalizer.Normalizer;
import nablarch.fw.web.handler.normalizer.TrimNormalizer;

/**
 * リクエストパラメータの値をノーマライズするハンドラ。
 * 

* このハンドラはデフォルトで、リクエストパラメータの前後のホワイトスペースを除去する。 *

* もし、デフォルト実装以外のノーマライズ処理を行う必要がある場合は、{@link #setNormalizers(List)}を使用して、{@link Normalizer}を設定すること。 * {@link #setNormalizers(List)}では、デフォルトの動作が上書きされるため、デフォルトで適用されている{@link TrimNormalizer}の設定も行う必要がある。 * * @author Hisaaki Shioiri */ public class NormalizationHandler implements Handler { /** このハンドラで行うノーマライザのリスト */ private List normalizers = null; /** * デフォルトの構成でハンドラオブジェクトを生成する。 *

* デフォルト構成では、{@link TrimNormalizer}が有効となる。 */ public NormalizationHandler() { setNormalizers(Collections.singletonList(new TrimNormalizer())); } @Override public Object handle(final HttpRequest request, final ExecutionContext context) { final Map parameters = request.getParamMap(); for (final Map.Entry entry : parameters.entrySet()) { final String key = entry.getKey(); String[] value = entry.getValue(); for (final Normalizer normalizer : normalizers) { if (normalizer.canNormalize(key)) { value = normalizer.normalize(value); } } parameters.put(key, value); } return context.handleNext(request); } /** * {@link Normalizer}を設定する。 * * @param normalizers ノーマライザ */ public void setNormalizers(final List normalizers) { this.normalizers = Collections.unmodifiableList(normalizers); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy