0

テキストボックス、テキストエリア、コンボボックスがあるjspページがあります。リクエストからフィルターの値を取得しているときに、それがtextrareaかどうかを知りたいです。それでそれは可能ですか?フィルタでもリクエストの値を変更できますか?

4

2 に答える 2

2

フィルタはサーブレットです。通常のサーブレットと同様に、リクエストからパラメータの値を取得および変更できます。

public class CheckFilter implements Filter {

    public void init(FilterConfig filterConfig) {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {

       HttpServletRequest request = (HttpServletRequest) req;

       String contentTextarea = request.getParameter("myTextarea");

       String modifyContentTextarea = changeContent(contentTextarea);

       chain.doFilter(request, response);
    }

    private String changeContent(String content) {
          //to do smth with value of content
          return modifyContent;
    }

    public void destroy() {
    }
}

そして、JSPでテキストエリアを次のようにマークします。

<textarea name="myTextarea"></textarea>
于 2012-05-21T06:39:00.670 に答える
0

リクエストにはパラメータ名と値のキー/値ペアのみが含まれているため、textarea / radio/チェックボックスを使用してパラメータを設定したかどうかを判断することはできません。パラメータの生成に使用されたフォームフィールドを知っておく必要がありますあなたはすでにサーバー上で期待している、私はこれの必要性を見ていません。何らかの理由でこれが本当に必要な場合は、パラメータの設定に使用されたフォームフィールドに関する情報を含む別のパラメータをリクエストに追加する必要がありますが、これは非常にすぐに厄介になり始めます。

2番目の部分では、はい、サーブレットまたはフィルター内のリクエスト内の任意の値を変更できます。

于 2012-05-21T06:46:47.477 に答える