Apache Velocityテンプレートのクエリ文字列を置き換える方法は?

ビクトリア

私のWebアプリケーションでは、ユーザーが検索を実行しているときに、freeTextパラメーターにJavaScriptを挿入できないようにしようとしています。

これを行うには、ヘッダーVelocityファイルにコードを記述して、クエリ文字列にfreeTextというパラメーターが含まれているかどうかを確認します。含まれている場合は、replaceメソッドを使用してパラメーター値内の文字を置き換えます。ただし、ページを読み込んでも、元のクエリ文字列が表示されます。元のクエリ文字列を、文字が置き換えられた新しいクエリ文字列に置き換える方法がわかりません。

これは私のコードです:

#set($freeTextParameter = "$request.getParameter('freeText')")
freeTextParameter: $freeTextParameter

#if($freeTextParameter)
    ##Do the replacement: 
    #set($replacedQueryString = "$freeTextParameter.replace('confirm','replaced')")
    replacedQueryString after doing the replace: $replacedQueryString
    The query string now: $request.getQueryString()
    The freeText parameter now: $request.getParameter('freeText')
#end

上記のコードでは、replacedQueryString変数が期待どおりに変更されています(つまり、置換は期待どおりに実行されています)が、$ request.getQueryString()と$ request.getParameter( 'freeText')は以前と同じです。交換が行われたことがない場合。

パラメータを取得するために正常に機能するrequest.getParameterメソッドがあるので、同じことを逆に行うrequest.setParameterメソッドがあると思いましたが、ありません。

ビクトリア

私は自分で問題を修正することができました-$!request.getParameter( 'freeText') "変数が使用されている別のファイル(すべてのページで呼び出される)があることが判明しました。そのファイルを更新して、既存の「$!request.getParameter( 'freeText')」変数の代わりに、新しい$!replacedQueryString変数(つまり、JavaScriptが削除された変数)を使用します。これにより、JavaScriptがすべてのページで実行されなくなります。

したがって、これはヘッダーVelocityファイルの最終的な作業コードです。

    #set($freeTextParameter = "$!m.request.httpRequest.getParameter('freeText')")
#if($freeTextParameter)
    #set($replacedQueryString = "$freeTextParameter.replace('confirm','').replace('<','').replace('>','').replace('(','').replace(')','').replace(';','').replace('/','').replace('\"','').replace('&','').replace('+','').replace('script','').replace('prompt','').replace('*','').replace('.','')")
#end

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Apache Velocityテンプレートエンジンで変数を組み合わせる方法は?

分類Dev

.docx内のテキストテンプレートを置き換えます(Apache POI、Docx4jなど)

分類Dev

ルートディレクトリApacheのユーザー名のURL文字列を書き換えます

分類Dev

Apache2 のメインページを置き換える方法は?

分類Dev

Apache書き換えの問題。クエリ文字列を理解できません

分類Dev

クエリ文字列apacheを書き換えます

分類Dev

複数のクエリ文字列を使用したApacheの書き換え

分類Dev

Goテンプレートの文字列を置き換える方法は?

分類Dev

MySQLアプリケーションをPHPアプリケーションデータベースとしてApache Derbyに置き換える方法は?

分類Dev

Apacheディスパッチャーはクエリ文字列ルールを書き換えます

分類Dev

Apache Velocity テンプレート ファイルの予期しないエラー

分類Dev

Apache Velocity:コマンドラインからテンプレートの正確さを確認する標準的な方法はありますか?

分類Dev

Apache Velocityの「メインテンプレート」?

分類Dev

値がnullまたは空の場合、Apache Velocityテンプレートを使用して自己終了XML要素を生成する方法

分類Dev

Apache Beam 2.4でwithFilenamePolicyを置き換える方法は?

分類Dev

Apache Tomcatで実行されているSpring Bootアプリケーションで、環境変数のプレースホルダーが確実に置き換えられるようにする方法は?

分類Dev

Apache Velocityテンプレートの実行時にデバッグメッセージを取得する

分類Dev

URLからディレクトリの一部を削除するためのApache書き換えルール

分類Dev

Apache POI Jars を最新バージョンに置き換える

分類Dev

mongodbプロジェクトステートメントの文字列を置き換える方法は?

分類Dev

Apacheの書き換え:301の末尾のスラッシュリダイレクトを自分で検出して実行する方法は?

分類Dev

Apache書き換えルールを使用して複数のドメインをメインドメインにリダイレクトする

分類Dev

sedを使用してapache2.confファイルの複数行の文字列を置き換える

分類Dev

Apache Nifi1.7タイムスタンプ操作用のテキストプロセッサを置き換える

分類Dev

オプションのクエリパラメータのApache書き換えルール

分類Dev

Apacheブロッキング(単に書き換えやリダイレクトではない)標準のhttpリクエスト

分類Dev

クエリ文字列を使用したApacheリダイレクト

分類Dev

クエリ文字列を使用したApacheリダイレクト

分類Dev

VisualBasicスクリプト:文字列の特定のインデックスの文字を置き換える方法は?

Related 関連記事

  1. 1

    Apache Velocityテンプレートエンジンで変数を組み合わせる方法は?

  2. 2

    .docx内のテキストテンプレートを置き換えます(Apache POI、Docx4jなど)

  3. 3

    ルートディレクトリApacheのユーザー名のURL文字列を書き換えます

  4. 4

    Apache2 のメインページを置き換える方法は?

  5. 5

    Apache書き換えの問題。クエリ文字列を理解できません

  6. 6

    クエリ文字列apacheを書き換えます

  7. 7

    複数のクエリ文字列を使用したApacheの書き換え

  8. 8

    Goテンプレートの文字列を置き換える方法は?

  9. 9

    MySQLアプリケーションをPHPアプリケーションデータベースとしてApache Derbyに置き換える方法は?

  10. 10

    Apacheディスパッチャーはクエリ文字列ルールを書き換えます

  11. 11

    Apache Velocity テンプレート ファイルの予期しないエラー

  12. 12

    Apache Velocity:コマンドラインからテンプレートの正確さを確認する標準的な方法はありますか?

  13. 13

    Apache Velocityの「メインテンプレート」?

  14. 14

    値がnullまたは空の場合、Apache Velocityテンプレートを使用して自己終了XML要素を生成する方法

  15. 15

    Apache Beam 2.4でwithFilenamePolicyを置き換える方法は?

  16. 16

    Apache Tomcatで実行されているSpring Bootアプリケーションで、環境変数のプレースホルダーが確実に置き換えられるようにする方法は?

  17. 17

    Apache Velocityテンプレートの実行時にデバッグメッセージを取得する

  18. 18

    URLからディレクトリの一部を削除するためのApache書き換えルール

  19. 19

    Apache POI Jars を最新バージョンに置き換える

  20. 20

    mongodbプロジェクトステートメントの文字列を置き換える方法は?

  21. 21

    Apacheの書き換え:301の末尾のスラッシュリダイレクトを自分で検出して実行する方法は?

  22. 22

    Apache書き換えルールを使用して複数のドメインをメインドメインにリダイレクトする

  23. 23

    sedを使用してapache2.confファイルの複数行の文字列を置き換える

  24. 24

    Apache Nifi1.7タイムスタンプ操作用のテキストプロセッサを置き換える

  25. 25

    オプションのクエリパラメータのApache書き換えルール

  26. 26

    Apacheブロッキング(単に書き換えやリダイレクトではない)標準のhttpリクエスト

  27. 27

    クエリ文字列を使用したApacheリダイレクト

  28. 28

    クエリ文字列を使用したApacheリダイレクト

  29. 29

    VisualBasicスクリプト:文字列の特定のインデックスの文字を置き換える方法は?

ホットタグ

アーカイブ