2015-10-06 3 views
0

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

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

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

Как я могу установить путь контекстного маршрута без/отдыха?

web.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"; 
} 

ответ

0

Пожалуйста, обратитесь Spring Pet Clinic на GitHub, чтобы узнать, как настроить различные точки зрения. Sample view config xml. Вот контур.

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

Смежные вопросы