簡體   English   中英

在 Spring mvc 中使用 html 文件發送 dto

[英]Sending dto with html file in Spring mvc

我當前的控制器返回到 HTML 頁面。 我想發送一些可以在前端接收的數據(一個 DTO),比如一個 ajax 響應(就像它發生在 ajax + RestController 中)。 但這不是 RestController,它是一個普通的 @controller 返回 HTML。 我不知道是否可以用 html 發送 DTO。 沒有太多代碼可以看。 我只是在尋找可行性。 如果需要其他信息,請告訴我。 謝謝

編輯

這里有一些代碼供參考。 login.html 是我要返回的頁面。 我想通過此返回發送一些附加信息(以 DTO 的形式)。

@Controller
public class LoginUserController {

  @RequestMapping(value = {"/loginuser", "/loginuser?error"})
  public String login() {
    return "/login";
  }

}

如果您只想返回視圖 ie jsp在您的情況下。 您可以將DTO object放在 modelMap 中並在jsp 或者只是如果您只想返回JSON您可以使用@ResponseBody

@RequestMapping(value = {"/loginuser", "/loginuser?error"})
  public String login(ModelMap model) {
   YourDTO dtoObject = // get DTO;
   model.put("dtoObject",dtoObject)
   return "/login";
 }

  class YourDTO {
    private int id;
    private String name;
    // getters setters 
  }

在登錄 JSP 中,您可以使用dtoObject

     Name <c:out value="${dtoObject.name}" ></c:out>  // Using JSTL

或在 Html 文件中

    <input type="text" id="name" value='${dtoObject.name}'/>

似乎您正在嘗試構建一個 Spring Boot Web 應用程序,這是您需要做的最低限度的工作:

  1. 確保您的 maven 依賴項在 pom.xml 中有spring-boot-starter-thymeleafspring-boot-starter-webapp

     <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
  2. 像這樣配置/編寫您的控制器:

     @Controller public class LoginUserController { @GetMapping(value = {"/loginuser", "/loginuser?error"}) public String login( Model model) { model.addAttribute("message", "Aww snaps! something went wrong..."); return "login"; } }
  3. 確保您有src/main/resources/templates/login.html ,它可能如下所示:

     <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Login Page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p th:text="${message}" /> </body> </html>

您可以使用您選擇的任何其他查看技術而不是 Thymeleaf。 基本上,查看技術解析 HTML 模板,尋找像

日:文本

重新認識價值

${消息}

使用您在 Controller 中放入模型的數據。

希望這可以幫助!

you can use following code 

    @Controller
    public class LoginUserController {

     @GetMapping(value = {"/loginuser", "/loginuser?error"})
     public String login( Model model) {
       organizationDTO = organizationService.getOrganizationDTO(id);
        model.addAttribute("organizationDTO", organizationDTO);
       return "/login";
     }
}

and use below code in HTML page using JSTL

    <div class="row">
        <p class="col-md-4">${organizationDTO."your value"}</p>
    </div>

eg below 

    <div class="row">
            <label class="col-md-2">Id</label>
            <p class="col-md-4">${organizationDTO.id}</p>
            <label class="col-md-2">Name</label>
            <p class="col-md-4">${organizationDTO.name}</p>
    </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM