[英]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 應用程序,這是您需要做的最低限度的工作:
確保您的 maven 依賴項在 pom.xml 中有spring-boot-starter-thymeleaf和spring-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>
像這樣配置/編寫您的控制器:
@Controller public class LoginUserController { @GetMapping(value = {"/loginuser", "/loginuser?error"}) public String login( Model model) { model.addAttribute("message", "Aww snaps! something went wrong..."); return "login"; } }
確保您有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.