0

私が使用する id@RequestMappingがフォーマットの値を受け入れ、1234567812345678(基本的にはスラッシュをabcxyz/abcxy+z$含む自動生成された文字列) を受け入れるという要件があります。/

以下の 3 つの形式すべてのマッピングを試みましたが、何も機能しません。

@RequestMapping(value="abc/action/{id: .+[//]*.*}.{format}", method=RequestMethod.PUT) -- 何も受け入れません。

@RequestMapping(value=" abc/action/{id:.+}.{format}", method=RequestMethod.PUT) -- 以外のすべてを受け入れます /

@RequestMapping(value=" abc/action/{id:.*}.{format}", method=RequestMethod.PUT) -- 以外のすべてを受け入れます /

ただし、通常のJavaプログラムで同じ正規表現を試すと、魅力的に機能します:

package miscellenousTest;
public class RegExTest {
    public static void main(String[] args) {
        String s1 ="9876543298765432";
        String s2 =" abcxyz/abcxy+z$";
        System.out.println(s1.matches(".+[//]*.*"));
        System.out.println(s2.matches(".+[//]*.*"));
    }
}

以前の投稿のいくつかを調べましたが、探している正確な解決策は何もありません。

誰かがこれにいくつかのポインタ/解決策を投げることができれば素晴らしいでしょう.

4

1 に答える 1

1

URL でデータを送信するときは、スラッシュを使用しないでください。送信する前に urlencode する必要があります。その後、あなたに返される前にデコードされます。

この問題に遭遇したとき、私は Web セーフな名前を付けることもあります。たとえば、「12345/01」のような ID を送信する必要がある場合があります。それらを URL で Web 経由で送信するときは、「12345_01」と言い、これを Web セーフ ID と呼んでいます。実際の ID が必要な場合は、_ を / に置き換えて変換します。

于 2012-04-28T15:24:20.967 に答える