Не открываются нужные jsp-страницы.

 
 
 
Сообщения:12
Простое приложение, используемая технология: Spring MVC + tomcat. Первый контроллер ("/") возвращает требуемую jsp-страничку, при этом она открывается в браузере по адресу "http://localhost:8080/simplemvcapp";, где "simplemvcapp" - это имя проекта. Но второй, третий и четвертый контроллер возвращают ошибку 404. Скажем, второй контроллер открывает адрес "http://localhost:8080/add-new-order"; и вот эта ошибка. Однако(!!!) - если в адресную строку вручную добавить имя проекта "http://localhost:8080/simplemvcapp/add-new-order", то нужная страничка все таки открывается. В чем проблема? В настройках сервера tomcat? Не так написаны сами контроллеры?

package com.javamaster.controller;

import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.javamaster.domain.Order;
import com.javamaster.service.OrderService;
import com.javamaster.service.OrderServiceImpl;

@Controller
public class OrderController {
	
	private OrderService orderService = new OrderServiceImpl();
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String getOrderPage(Model model) {
		List<Order> orders = orderService.getAll();
		model.addAttribute("orderList", orders);	
		return "order";
	}	
	
	@RequestMapping(value = "/add-new-order", method = RequestMethod.GET)
	public String addNewOrderPage() {
		return "addNewOrder";
	}
	
	@RequestMapping(value = "/add-new-order", method=RequestMethod.POST)
	public String addNewOrder(@RequestParam(value="title") String title, @RequestParam(value="price") Double price) {
		Order order = new Order();
		order.setTitle(title);
		order.setPrice(price);
		orderService.save(order);
		return "redirect:/";
	}
	
	@RequestMapping(value = "delete/{id}", method = RequestMethod.GET)
	public String deleteItem(@PathVariable Integer id) {
		Order order = orderService.getById(id);
		orderService.delete(order);
		return "redirect:/";	
	}
	
}
Изменен:13 янв 2019 20:02
 
 
Сообщения:727
так оно и работает. сначала адрес томката, потом имя проекта и в конце маппинг.
 
 
Сообщения:12
Спасибо) В демонстрационном ролике не было имени проекта в строке браузера. Хм, хорошо, а что же тогда мне сделать, чтобы этот вариант таки взлетел?
 
 
Сообщения:75
Нужно чтобы приложение было корневым. Для этого надо разместить приложение в /webapps/ROOT/
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет