2017-06-27 82 views
0

私はフロントエンドとしてThymeleafを使用しています。Thymeleaf:クライアントのURLを暗号化解除またはエンコードする

Webページに表示してサーバーに渡す自然言語のメニューカテゴリがいくつかあります。

例えば、私は「私のお気に入りの猫」

のカテゴリを持っているカテゴリは、このカテゴリには、リンクを持つ変数$ {} category.key

です。

<a th:href="|http://myserver?selectedCategory=${category.key}|><span th:text=${category.key}></span></a>

  • 私は、サーバー上でurlencode $ {} category.keyない場合 ユーザーがリンクをクリックしたときに が空白文字がある場合、その後、selectedCategoryパラメータがnullの場合カテゴリの文字列に
  • 私は、サーバーの罰金にカテゴリ文字列、selectedCategoryパラメータ パスをコードするが、リンクテキストマイ+お気に入り+猫

として表示されます私は、2つの変数、エンコードされた1、一つではないしたくない場合コード化される。

$ {category.key}をThymeleaf HTMLコンパイルプロセスの一部としてエンコードまたはエンコード解除するにはどうすればよいですか?

+1

私はthymeleafを使用したことがありませんが、私はちょうど「thymeleafリンク構文」ググ、最初のリンクをクリックし、文書が見つかりました:http://www.thymeleaf.org/doc/articles/standardurlsyntaxを。 html。つまり、言語が何であれ、カテゴリを識別するキーと、そのキーに関連付けられた国際化ラベルを実際に持っているはずです。 –

+0

でも、自然言語処理では動作しません。あまりにも面倒です。しかし、私は解決策を見つけたと思う:th:text = "$ {#strings.replace(category.key、 '+'、 ''})" – Jake

答えて

1

@symbolは、サーバコンテキストでありますティメレフの道あなたは@記号を使用します。

<a href="#" th:href="@{/your server context path?selectedCategory=__${category.key}__}"> 
<span th:text="${category.key}"> </span></a> 
0

@記号を使用することは間違いなく主な選択肢です。答えは

を使用して、リンクテキストで

「」と「+」を交換するために、より少ないノウハウ#strings機能を使用することです

:しかし、ちょうど機会に有用であり得る別のオプションを注意します

th:text="${#strings.replace(category.key,'+',' ')}" 
1

Thymeleafは、URL構文(which was supplied in a comment above)でそれらを構築すると、文字列をエンコードします。あなたの例のurlには、それは次のようになります - ではなく$@記号を使用して:

<a th:href="@{http://myserver(selectedCategory=${category.key})}" th:text="${category.key}" /> 

を(また、あなたはその余分なスパンを必要としません。)

関連する問題