의 안전하지 않은 바인더 구성 (API 남용, 구조) 다음 두 가지 방법으로 의사를 찾는 컨트롤러 클래스가 있습니다 (컨텍스트가 변경됨). 얻기 대량 할당 : 두 방법 모두에서 안전하지 않은 바인더 구성 (API 남용, 구조적) 오류.대량 할당 문제를 해결하는 방법 : Java
@Controller
@RequestMapping(value = "/findDocSearch")
public class Controller {
@Autowired
private IFindDocService findDocService;
@RequestMapping(value = "/byName", method = RequestMethod.GET)
@ResponseBody
public List<FindDocDTO> findDocByName(FindDocBean bean) {
return findDocService.retrieveDocByName(bean.getName());
}
@RequestMapping(value = "/byLoc", method = RequestMethod.GET)
@ResponseBody
public List<FindDocDTO> findDocByLocation(FindDocBean bean) {
return findDocService.retrieveDocByZipCode(bean.getZipcode(),
bean.getDistance());
}
}
내 콩은 다음과 같습니다
public class FindDocBean implements Serializable {
private static final long serialVersionUID = -1212xxxL;
private String name;
private String zipcode;
private int distance;
@Override
public String toString() {
return String.format("FindDocBean[name: %s, zipcode:%s, distance:%s]",
name, zipcode, distance);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public int getDistance() {
return distance;
}
public void setDistance(int distance) {
this.distance = distance;
}
으로 지금까지 발견 된 모든 제안에 따라, 그들은 다음과 같은 경우에만 뭔가에 필요한 매개 변수를 사용하여 빈을 제한하기 위해 제안된다 :
final String[] DISALLOWED_FIELDS = new String[]{"bean.name", "bean.zipcode", };
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setDisallowedFields(DISALLOWED_FIELDS);
하지만 내 문제는 모든 콩의 3 매개 변수는 컨트롤러에서 제공되는 방법 중 하나에서 사용됩니다.
누군가가이 문제에 대한 해결책을 제안 할 수 있습니까? 미리 감사드립니다.
왜 콩을 사용하나요? 어쨌든 문자열 만 사용하므로 모든 메서드에서 String에 바인딩 할 수 있습니다. findByDocName (문자열 이름) – koe