0

春は奇妙な動作をしています...これは私のコントローラです:

@RequestMapping(value="", method=RequestMethod.GET)
public void search(SearchDTO dto) {
    System.out.println(dto.testa.contains);
    System.out.println(dto.testa.contains.getClass());
    System.out.println(dto.testb.contains);
    System.out.println(dto.testb.contains.getClass());
}

SearchDTO.java:

public class SearchDTO {    
    public UUIDListSearchDTO testa;
    public UUIDListSearchDTO getTesta() { return testa; }
    public void setTesta(UUIDListSearchDTO testa) { this.testa = testa; }

    public ListSearchDTO<UUID> testb;
    public ListSearchDTO<UUID> getTestb() { return testb; }
    public void setTestb(ListSearchDTO<UUID> testb) { this.testb = testb; }
}

ListSearchDTO.java:

public class ListSearchDTO<C> {

    public C contains;
    public C getContains() { return contains; }
    public void setContains(C contains) { this.contains = contains; }

}

UUIDListSearchDTO.java:

public class UUIDListSearchDTO extends ListSearchDTO<UUID> {

}

ここで、次の URL を呼び出します。

GET http://localhost:8080/myApp/myController?testa.contains=11111111-1111-1111-1111-111111111111&testb.contains=11111111-1111-1111-1111-111111111111

私が得る出力:

11111111-1111-1111-1111-111111111111
class java.util.UUID
11111111-1111-1111-1111-111111111111
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID

なぜこれが起こるのですか?

ところで: 私は Spring 4.0.0.M3 を使用しています。誰かが Spring 3 でテストできますか?


スタックトレース:

traceアプリケーション全体のデバッグ レベルを に設定しました。

http://pastebin.com/UuiUrscq

(例外は 72 行目で発生します: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID)

リクエスト URL:http://localhost:8080/copilot/assets?foreignKeys.contains=11112222-3333-4444-5555-66667777

4

0 に答える 0