【问题标题】:error 404 when part of the mappings from spring controller are acessed访问 spring 控制器的部分映射时出现错误 404
【发布时间】:2014-12-07 09:52:19
【问题描述】:

在下面的控制器中,当我尝试访问由方法 pagina(...)produto(...)categoria(...) 映射的 url 时,我收到错误 404。但是,如果尝试访问任何其他映射,所有没问题。任何人都可以看到我在这里缺少什么?

@Controller
public class AcessoController {
...
    @RequestMapping(value = "/")
    public String index(Model model) {
        model.addAttribute("categorias", lista.categoria());
        model.addAttribute("produtos", lista.produto());
        model.addAttribute("paginas", lista.pagina());
        return "public/index";
    }

    @RequestMapping(value = "/${pagina}")
    public String pagina(Model model, @PathVariable("pagina") String pagina) {
        model.addAttribute("pagina", view.pagina(pagina));
        model.addAttribute("paginas", lista.pagina());
        return "public/pagina";
    }

    @RequestMapping(value = "/produto/${id}")
    public String produto(Model model, @PathVariable("id") String id) {
        model.addAttribute("produto", view.produto(Integer.valueOf(id).intValue()));
        model.addAttribute("paginas", lista.pagina());
        return "public/produto";
    }

    @RequestMapping(value = "/categoria/${nome}")
    public String categoria(Model model, @PathVariable("nome") String nome) {
        model.addAttribute("categoria", view.categoria(nome));
        model.addAttribute("produtos", lista.produto());
        model.addAttribute("paginas", lista.pagina());
        return "public/pagina";
    }

    @RequestMapping(value = "/signin")
    public String signin(Model model) {
        return "acesso/signin";
    }

    @RequestMapping(value = "/signup")
    public String signup(Model model) {
        return "acesso/signup";
    }
...
}

【问题讨论】:

    标签: spring spring-mvc model-view-controller controller


    【解决方案1】:

    问题在于您在映射中定义了路径变量的人。

    将您的代码更改为:

    @RequestMapping(value = "/{pagina}")
    public String pagina(Model model, @PathVariable("pagina") String pagina) {
        model.addAttribute("pagina", view.pagina(pagina));
        model.addAttribute("paginas", lista.pagina());
        return "public/pagina";
    }
    
    @RequestMapping(value = "/produto/{id}")
    public String produto(Model model, @PathVariable("id") String id) {
        model.addAttribute("produto", view.produto(Integer.valueOf(id).intValue()));
        model.addAttribute("paginas", lista.pagina());
        return "public/produto";
    }
    
    @RequestMapping(value = "/categoria/{nome}")
    public String categoria(Model model, @PathVariable("nome") String nome) {
        model.addAttribute("categoria", view.categoria(nome));
        model.addAttribute("produtos", lista.produto());
        model.addAttribute("paginas", lista.pagina());
        return "public/pagina";
    }
    

    请注意,我在映射中删除了$

    【讨论】:

    • 好的,现在我看到我放了一个不属于那里的$ :(
    • 没错!删除它,问题就消失了!
    猜你喜欢
    • 2011-11-29
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多