gpt4 book ai didi

java - 如何使用 freemarker 将 HTML Post 方法中的值检索到 Java?

转载 作者:行者123 更新时间:2023-12-02 10:33:29 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的注册表单并将用户的数据插入到 mongodb 中。

    <html lang="en">
<head>
<meta charset="UTF-8">
<title>Sign Up</title>
<link href="/css/main.css" rel="stylesheet">
</head>
<body>
<h2>Sign Up</h2>
<#if user?? >
Your submitted data<br>
Name: ${user.user_id}<br>
Password: ${user.password}<br>
Email: ${user.email}<br>
<#else>
<form action="/form" method="post">
First name:<br>
<input type="text" name="Name">
<br><br>
Pasword:<br>
<input type="text" name="password">
<br><br>
Email:<br>
<input type="text" name="email">
<br><br>
<input type="submit" value="Submit">
</form>
</#if>
<script src="/js/main.js"></script>
</body>
</html>

我有一个 User 类,我想创建它的一个实例,以获取数据并将其插入到 mongodb 中。这是我不知道该怎么做的部分。如何创建 Controller 将数据从 HTML 传递到 User 实例?

这就是我到目前为止所拥有的 -

//sign up page
Spark.get(new Route("signup") {
@Override
public Object handle(Request request, Response response) {
StringWriter writer = new StringWriter();
User user = new User(); // create user to fetch results
try{
Template signupTemplate = configuration.getTemplate("signup.ftl");

}catch (Exception e){
e.printStackTrace();
}
}
});
}

我该如何继续?我只能使用 freemarkersparkjava 来做到这一点吗?

最佳答案

要将表单数据发送到服务器,您应该定义一个 Spark 路由来监听 POST 方法。

Spark 路线由三个实体组成( see doc's ),

  • 动词:获取、发布、放置、删除等。
  • path:路由适用的请求路径
  • 回调:当传入请求与路径匹配时将调用的处理程序类。

就你的情况而言,应该是,

Spark.post("/form", new Route() {
@Override
public Object handle(Request request, Response response) {
// process request and return response
}
});

如果您使用 Java 8,您可以简化上述内容,

Spark.post("/form", (request, response) -> {
// process request and return response
});

现在要读取表单数据,您可以通过获取原始请求 (HttpServletRequest) 并在 handle 内使用 getParameter() 来实现方法。

HttpServletRequest httpRequest = request.raw();
String name = httpRequest.getParameter("Name");
String email = httpRequest.getParameter("email");

关于java - 如何使用 freemarker 将 HTML Post 方法中的值检索到 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471341/

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