Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Não esotu conseguindo chamar o controller apartir da view

Meu JSP não transoforma a instrução s:mvcUrl em html.

View:

<!-- TagLibs -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>

<!DOCTYPE html>
<html>
<body>
<nav>
  <ul>
    <li><a href="${s:mvcUrl('AHC#HandleArticle').arg(0, Programacao de Computadores).build()}">Programacao de Computadores</a></li>
  </ul>
</nav>

</body>
</html>

Controller:

package com.filipecanattodev.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.filipecanattodev.model.Discipline;


@Controller
public class ArticlesHandlerController {

    @RequestMapping("/HandleArticle")
    public ModelAndView HandleArticle(Discipline discipline){
        ModelAndView view = new ModelAndView("ListOfArticles");
        return view;

    }

}

Configuração:

@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class })
public class AppWebConfiguration {

    @Bean
    public InternalResourceViewResolver InternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");

        return 

}

Ao acessar a view e clickar no link o browser exibe: HTTP Status 404 -The requested resource is not available.

Minha url fica suja da seguinte maneira: http://localhost:8080/mysistem/$%7Bs:mvcUrl('AHC#HandleArticle').arg(0, Programacao de Computadores).build()}

8 respostas

Opa, acho que isso aqui deveria estar entre aspas => em vez de Programacao de Computadores, ser 'Programacao de Computadores'

Alberto, ja tentei, mas não resolveu.

O erro continuou o mesmo? apareceu exatamente a mesma coisa?

No navegador, quando pede para abrir o código fonte da página, aparece o que?

Mesmo erro, ele simplemente n converte a instrução "${s:mvcUrl('AHC#HandleArticle').arg(0, Programacao de Computadores).build()}" em html.

Ao abrir o fonte pelo browser aparece:

<li><a href="${s:mvcUrl('AHC#HandleArticle').arg(0, Programacao de Computadores).build()}">Programacao de Computadores</a></li>

Ou seja, a EL n foi transformada em html

É, estranho mesmo.. nessa página, se vc usa alguma taglib do core, é transformado? isso só deveria acontecer em versões muito velhas do servidor web ou com um web.xml apontando para uma versão muito antiga da spec.

Tbm n funciona, fiz uma if basico usando o core da jstl:

<c:forEach var="i" begin="1" end="10" step="1">
      <c:out value="${i}" />

      <br />
    </c:forEach>

E o browser renderizou:

${i} ${i} ${i} ${i} ${i} ${i} ${i} ${i} ${i} ${i}

Criei meu projeto usando o archtype webapp do maven, será q pode ter algum problema?

SOLUCIONADO:

O problema era a versão do meu web.xml, ao mudar da versão 2.3 para a 3.0 funcionou!.

Apesar de funcionar ainda n sei conceitualmente oque éra o erro e porque foi solucionado ao mudar a versão. Algum instrutor poderia descrever mais precisamente para mim oque aconteceu ?

solução!

Opa, então era a versão mesmo :). O servidor assume o comportamento relativo a versão especificada no web.xml.