私は医師を見つけるための以下の2つのメソッド(コンテキストが変更された)を持つコントローラクラスを持っています。 一括割り当て:両方のメソッドでエラーが不正なバインダー構成(APIの不正使用、構造)。マス課題を解決する方法:
@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());
}
}
と私の豆は次のとおりです。これまでに見つかったすべての提案を1として
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);
しかし、私の問題は、Beanの3つのパラメータすべてがControllerで提供されるメソッドのいずれかで使用されることです。
誰かがこれについていくつかの解決策を提案できますか?前もって感謝します。
なぜBeanを使用しますか?あなたはすべてのメソッドのStringにバインドできます(とにかく文字列を使用するだけなので)。 findByDocName(文字列名) – koe