Index.html:-'<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Greeting Page</title>
</head>
<body>
Hello Home Page !!
<br>
<a href="result?data=500">Send data to server</a>
</body>
</html>
result.html:<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<br>Your output is: <span th:text="${value}"></span>
</body>
</html>
First.java-
package com.progrank.maven.MavenApp.Class;
import ch.qos.logback.core.model.Model;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Controller
public class First {
@RequestMapping("/index")
public String hello(){
return "index";
}
@RequestMapping("/result")
public String index(String data,HttpSession session){
System.out.println("Data:"+data);
session.setAttribute("value:",data);
return "result";
}
}
点击该链接后:将数据发送到该服务器,然后它们会重定向到结果页面,并且数据已经在获取,但它们无法在网页中显示,它们显示的输出是这样的:您的输出是:${value}
Expexted 输出是这样的:您的输出是:500
由于设置和访问会话属性的方式存在小错误,您面临此问题。 主要是,您设置了 session 属性,名称为“value:”,但它正在使用名称“value” 进行访问。属性名称不匹配导致结果页面无法正确显示数据。
虽然你的代码似乎很完美,保留了这个错误,但我也附上了下面的一个代码供你参考。
package com.progrank.maven.MavenApp.Class;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class First {
@RequestMapping("/index")
public String hello() {
return "index";
}
@RequestMapping("/result")
public String index(String data, HttpSession session) {
System.out.println("Data: " + data);
session.setAttribute("value", data); // Corrected attribute name
return "result";
}
}
我希望您的疑问现在能够得到解决。
如果您觉得这有帮助,请支持我的回答。