gpt4 book ai didi

javascript - 如何将 Spring Mvc Controller 5 连接到 jsp 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:53 26 4
gpt4 key购买 nike

我正在使用 Spring 5。我有 UserController.java:

@Controller
public class UserController {
@Autowired
private UserService userService;

@GetMapping("/")
public String userForm(Locale locale, Model model) {
model.addAttribute("users", userService.list());
return "editUsers";
}

@ModelAttribute("user")
public User formBackingObject() {
return new User();
}

@PostMapping("/addUser")
public String saveUser(@ModelAttribute("user") @Valid User user, BindingResult result, Model model) {
if (result.hasErrors()) {
model.addAttribute("users", userService.list());
return "editUsers";
}
userService.save(user);
return "redirect:/";
}
}

我还有 User.java 类:

public class User {
public User() {
this.name = "";
this.email = "";
}

public User(String name, String email) {
this.name = name;
this.email = email;
}

private String name;
private String email;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

接口(interface)UserService.java:

public interface UserService {
void save(User user);

List<User> list();
}

和UserServiceImp.java:

@Service
public class UserServiceImp implements UserService {
private List<User> listattt = new ArrayList<>();

@Transactional
public void save(User user) {
listattt.add(user);
}

@Transactional(readOnly = true)
public List<User> list() {
listattt.add(new User("a", "a@g.com"));
listattt.add(new User("b", "b@g.com"));
listattt.add(new User("c", "c@g.com"));
return listattt;
}
}

和EditUsers.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<script language="javascript" type="text/javascript">
var myArray1 = "${users}";////----->>>> ERROR HOW TO CONNECT USER LIST FROM CONTROLLER TO JSP FILE
var myTable= "<table><tr><td>User column</td>";
for (var i=0; i<3; i++) {
myArray1[i] = myArray1[i].toFixed(3);
myTable+="<tr><td> " + myArray1[i] + " </td>";
}
myTable+="</table>";
document.write(myTable);
</script>
</html>

现在我想将 UserController 中的用户列表与 editUsers.jsp 连接起来,但我不知道该怎么做?我试图做类似 var myArray1 = "${users}"; 的事情但没有成功。一般来说,我希望在 Java 脚本中的 JSP 中获取来自 Java 的数据。我想填充 JS 容器 myArray1 并根据此数据执行下一步操作。谢谢您的帮助。

最佳答案

你不能用 JavaScript 做到这一点。无论如何,不​​是直接的。有一种使用 JavaScript 构建 HTML 的巧妙方法,但您应该依赖 JSP 的内置功能。<​​/p>

您应该使用 JSTL 并使用 c:forEach 循环来构建表。

例如,您可能会这样做:

<table>
<c:forEach items="${users}" var="user">
<tr><td>${user}</tr></td>
</c:forEach>
</table>

为了访问各个字段,只需使用点运算符,例如${用户名}。如果字段存在,这将自动调用该字段的 getter。

通过将 JSTL 放在顶部,可以将 JSTL 包含在 JSP 文件中。

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

您可能还需要将其作为依赖项包含在内。

关于javascript - 如何将 Spring Mvc Controller 5 连接到 jsp 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48633402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com