使用Spring Boot映射一些URL

时间:2018-12-14 05:29:15

标签: mongodb spring-mvc spring-boot jsp jstl

您好,我是spring boot和mvc模型的新手,我试图创建一些方法来使用邮递员将一些数据调用到Mongo DB中,但现在我想在网页上显示此数据,但我无法弄清楚Spring Boot中映射的工作方式。 我有这种方法:

@Controller
@RequestMapping("/Informacion")
public class InformacionControlador {
@Autowired
private informacionRepo informacioRepo;

public InformacionControlador(informacionRepo informacioRepo) {
    this.informacioRepo = informacioRepo;
}

//This method is comment because using postman get the answer in json format

//    @GetMapping("/Listar")
//    public List<Informacion> getAll() {
//        List<Informacion> info = this.informacioRepo.findAll();
//        return info;
//    }

//Now this is the method that i want to work like the first one but 
//instead of json answer y want to see the data in ListarInformacion page

@GetMapping("/Listar")
public String informacion(ModelMap model) {
    model.addAttribute("info", informacioRepo.findAll());
    return "ListarInformacion";
}


@PutMapping
public void insert(@RequestBody Informacion informacion) {
    this.informacioRepo.insert(informacion);
}

}

我也将这行代码放入application.properties文件中,以设置存储页面的文件夹

spring.mvc.view.prefix=/webapp/Vistas
spring.mvc.view.suffix=.jsp

这是我的ListarInformacion页面

<html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
<head>
    <title>Title</title>
</head>
<body>
<form:form method="GET" action="/webapp/Vistas/ListarInformacion" modelAttribute="Informacion">
<table class="table table-striped table-hover">
     <thead class="thead-dark">
     <tr>
         <th scope="col">ID</th>
         <th scope="col">Nombre</th>
        <th scope="col">Identificación</th>
        <th scope="col">Fecha Creación</th>
    </tr>
</thead>
<c:forEach var="p" items="${info}">
    <tr>
        <td>${p.idInformacion}</td>
        <td>${p.nombre}</td>
        <td>${p.pais}</td>
        <td><fmt:formatDate pattern="dd/MM/yyyy" value="${p.fechaCreacion}"/></td>
        <td>

        </td>
    </tr>
</c:forEach>

</table>
</form:form>
</body>
</html>

this is the location of my files

谁能告诉我我想念什么,因为当我尝试访问url localhost:8080 / Informacion / Listar时,答案是一个说/ ListarInformacion ant的字符串,它无法将我重定向到其可重定向的页面< / p>

1 个答案:

答案 0 :(得分:0)

您应该尝试访问localhost:8080/Informacion/Listar,因为已经将其映射到控制器类(/Informacion

将jsp放入Spring Boot项目的首选位置是

--webapp
       --WEB-INF
         --jsp
           --your.jsp

在您的情况下是    -

-webapp
       --WEB-INF(Create WEB-INF directory if you don't have)
            --Vistas(folder)
         --jsp
           --hello.jsp

并且您在属性文件中的视图路径将为spring.mvc.view.prefix=/WEB-INF/Vistas