0

Spring MVC プロジェクトでフォーム オブジェクトの Spring Validator を取得しました。部分的にクライアント IP アドレスに基づいた検証を行う必要があります。バリデータ内で request.getRemoteAddr() のようなものを取得することは可能ですか?

//controler

public String saveForm(@Valid @ModelAttribute("command") MyCommand myCommand, BindingResult result) {
//some code
return "viewName";
}

//Validator
public class MyValidator implements Validator {
    @Override
    public void validate(Object target, Errors errors) {
    String requestIp = ?
}
}
4

1 に答える 1

1

私の頭に浮かぶ最初の方法は、RequestContextHolderユーザーのリクエストを取得するために使用することです:

((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest().getRemoteAddr()

また、次の行を に追加する必要がありますweb.xml

<listener>                                                                                      
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
于 2013-04-04T09:50:06.697 に答える