Itsik Mauyhas:
私はjavaxのを使用していますValidation.constraints
し、私は入力を検証するが、それはnullにすることができ、私のPOJOにしたいです:
public class somePOJO{
@NotNull
@Size(min =2, max=50)
@Pattern(regexp="^[A-Za-z \\s\\-]*$")
private String country;
@Size(min =2,max=50)
@Pattern(regexp="^[A-Za-z \\s\\-]*$")
private String state;
//gettes, setters.....
}
私が検証するstate
と、たとえば@Pattern
と@size
だけでなく、それならばnull
。
使用してそれを行うための方法があり、カスタム注釈は?
ygor:
あなたは、最新の春ブーツ、2.1.0で例えば期待通りこれは、箱から出して動作します。
あなたは春ブーツのどのバージョンを使用していますか?
ここではPOJO(私は不変クラスを促進することをしてください通告、)のフルバージョンは以下のとおりです。
package sk.ygor.stackoverflow.q53207105;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
public class SomePOJO {
@NotNull
@Size(min =2, max=50)
@Pattern(regexp="^[A-Za-z \\s\\-]*$")
private final String country;
@Size(min =2,max=50)
@Pattern(regexp="^[A-Za-z \\s\\-]*$")
private final String state;
public SomePOJO(String country, String state) {
this.country = country;
this.state = state;
}
public String getCountry() {
return country;
}
public String getState() {
return state;
}
}
そして、コントローラのフルバージョン:
package sk.ygor.stackoverflow.q53207105;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
@RestController
public class ExampleController {
@RequestMapping(path = "/q53207105", method = RequestMethod.POST)
public void test(@Valid @RequestBody SomePOJO somePOJO) {
System.out.println("somePOJO.getCountry() = " + somePOJO.getCountry());
System.out.println("somePOJO.getState() = " + somePOJO.getState());
}
}
呼び出しにhttp:// localhost:8080 / q53207105と:
{
"country": "USA",
"state": "California"
}
版画:
somePOJO.getCountry() = USA
somePOJO.getState() = California
呼び出しにhttp:// localhost:8080 / q53207105と:
{
"country": "USA",
}
版画:
somePOJO.getCountry() = USA
somePOJO.getState() = null
あなたは私にあなたの春のブートバージョンを教えている場合、私はもっと役立つかもしれません。