MVC项目的意外映射错误

时间:2017-03-24 06:15:25

标签: java spring hibernate spring-mvc

我的应用程序出现映射错误。正如你从代码中看到的那样我有

@RequestMapping("/productList")

但是当我在我的主页上并悬停在我的浏览器左下方的产品(for / productList)链接时,网址如下

localhost:8080/eMusiscStore/productList;jsessionid=B16DF0DE6E0089AC5F7DBE356181BBB1

因此,有时,页面无法显示,有时请求页面(/ productList)正常加载。

我可以做些什么来确保每次映射都是正确的?

我只发布了我的HomeController。如果您需要其他文件,请与我们联系。

package com.controllers;

import java.io.IOException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
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 com.entities.Product;
import com.servicesapi.ProductService;

@Controller
public class HomeController {

    @Autowired
    ProductService productService;

    @RequestMapping("/")
    public String home(){
        System.out.println("HomeController home");
        return "home";
    }

    @RequestMapping("/productList")
    public String getProducts(Model model) {
        System.out.println("HomeController productiList");
        List<Product> products = productService.getAllProducts();
        model.addAttribute("products", products);

        return "productList";
    }

    @RequestMapping("/productList/viewProduct/{productId}")
    public String viewProduct(@PathVariable String productId, Model model) throws IOException{

        Product product = productService.getProductById(productId);
        model.addAttribute(product);

        return "viewProduct";
    }
}

1 个答案:

答案 0 :(得分:0)

正如您在说明中所提到的那样,有时候您可以呈现productList页面。这可能是一个错误的缓存问题。您可以尝试运行您的页面隐身模式或始终清除缓存。还要双重确保你的休息电话在Chrome浏览器中正常工作,并尝试调用localhost:8080 / eMusiscStore / productList; jsessionid = B16DF0DE6E0089AC5F7DBE356181BBB1 如果一切顺利,这应该在响应正文中返回productList。你不是在提及CRUD操作的类型吗?看起来它是一个@get方法。