Отображение URL-адреса сервлета Spring

Мне нужно добавить URL-адрес Restful в существующую веб-службу на основе весны.

Каждый URL-адрес хорошо отображается, но после нажатия URL-адреса Restful, такого как http://localhost:9090/Mercury/rest/invoice, все пути contextroot изменены на http://localhost:9090/Mercury/rest

Дело в том, что я хочу использовать шаблон URL restful(/rest) и *.do

Как я могу установить путь contextroot без /rest ?

веб.xml

     <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
     </servlet-mapping>

     <servlet>
        <servlet-name>rest</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
     </servlet>
     <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/</url-pattern>
     </servlet-mapping>

Контроллер

@Controller
@RequestMapping("/rest")
public class InvoiceController {

@RequestMapping(value="/{name}", method=RequestMethod.GET)
public String getInvoice(@PathVariable String name, Model model) {

    model.addAttribute("name", name);

    return "rest.body";
}

person JoonHo Kim    schedule 06.10.2015    source источник


Ответы (1)


Пожалуйста, обратитесь к Spring Pet Clinic на github, чтобы узнать, как настроить различные представления.Пример представления конфигурации в формате xml. Вот план.

ContentNegotiatingViewResolver делегирует InternalResourceViewResolver и BeanNameViewResolver и использует запрошенный тип мультимедиа (определяемый расширением пути) для выбора подходящего представления. Когда тип мультимедиа — «текст/html», он делегирует JstlView InternalResourceViewResolver, в противном случае — BeanNameViewResolver.

person bsingh    schedule 06.10.2015