1

Я столкнулся с следующей проблемой. Я предрек метод в контроллере, как следующий, который будет использоваться в качестве веб-сервиса:Spring 3 MVC Web-сервисы: множество параметров с таким же именем

@RequestMapping(value = "/" + "prueba" , method = RequestMethod.GET) 
public void prueba(ExampleBean pExample1, ExamlpleBean pExample2) { 
    // Wonderful code here 

} 

А класс ExampleBean просто, ну, Bean:

public class ExampleBean implements Serializable { 

    private String id; 
    private String whatever; 

    // getters, setters, and more. 
} 

Если интерфейс было что-то вроде этого:

@RequestMapping(value = "/" + "prueba" , method = RequestMethod.GET) 
public void prueba(ExampleBean pExample1) { 
    // Wonderful code here 

} 

Каждый раз, когда я хотел бы назвать это веб-сервис, я бы назвал URL в следующем виде:

http://myWebProject/prueba?id=1&whatever=hola

Но ... Как я могу сделать, когда мне нужно давать значения обоим параметрам из одного класса? Я имею в виду, я не могу повторять параметры, поэтому я не знаю, как отличать идентификатор от pExample1, а id от pExample2 при написании URL.

Я имею в виду также два параметра из разных классов, но с атрибутом с тем же именем. Например, если второй параметр относится к классу DifferentExampleBean, который также имеет параметр «id».

Большое спасибо!

PS: Я использую StringHttpMessageConverter.

+0

можно использовать с переменным числом аргументов? 'prueba (ExampleBean ... exampleBean)' – ant

+0

Ну ... Извините, может быть, мне придется переформулировать вопрос. Я хотел бы знать, как это сделать, когда 2 параметра имеют одинаковое имя. Я имею в виду, даже если два параметра из разных классов имеют один атрибут с тем же именем. Но спасибо за интерес ;-) – raspayu

ответ

1

Что вы хотели бы сделать, это создать родительский класс, который будет содержать определенное поле, которое вас интересует, тогда как ExampleBean, так и ExampleBean1 расширят этот родительский класс, и вы должны будете отправить только один тип в prueba(ParentClass instance1, ParentClass instance2).

Где instance1 бы экземпляр ExampleBean и instance2 бы экземпляр ExampleBean2

+0

Извините, обновили вопрос. Моя проблема связана с тем, как давать значения параметрам в URL. Очень жаль, что я не могу заявить об этом :-( – raspayu

+0

@ Raspayu дает строковые пареметры в URL-адресе, то есть в формате JSON, чем десериализует его внутри метода и делает что-либо с вашим экземпляром. Я рекомендую 'Google gson' – ant

+0

Извините, выглядит как я должен иметь дело с этим, как это :-(Но спасибо за рекомендацию, будет искать это для будущих участников проекта. – raspayu