如何将网页中的字符串输入作为 Java 对象传递给 @RestController?

Posted

技术标签:

【中文标题】如何将网页中的字符串输入作为 Java 对象传递给 @RestController?【英文标题】:How do I pass String input from a webpage to @RestController as a Java object? 【发布时间】:2019-04-05 22:17:37 【问题描述】:

我的问题很基础。

我有以下html

<form action="/login" method="GET">
  <div>
    Id: <input type="text" name="id" value="id"/>
    Name:  <input type="text" name="name" value="name"/>
  </div>
    <button>Login</button>
 </form>

以及我要连接的以下@GetMapping 方法:

 @GetMapping("/login")
  public String someLogin(LoginObject obj, HttpServletRequest request) 
    //do something
  

LoginObject 由两个字段组成:idname,这是我从 UI 中获取的。如何将两个字符串转换为我的LoginObject,然后将其传递给@RestController

【问题讨论】:

@Taplar 我根据您的评论编辑了我的问题 【参考方案1】:

首先你需要决定表单方法(POST/GET)。比注释你的休息控制器。这是给你的小例子;

<form action="/demo/add" method="get">
    <label>Username</label><input type="text" id="username" name="username"> 
    <label>Email</label><input type="email" id="email" name="email">
    <button>Send</button>
</form>

和休息控制器;

@RestController
@RequestMapping(path="/demo")
public class WebController 

@Autowired
private UserRepository userRepository;

@GetMapping(path="/add")
public @ResponseBody String addUser(@RequestParam String username, @RequestParam String email) 
    User u = new User();
    u.setUsername(username);
    u.setEmail(email);
    userRepository.save(u);
    return "SUCCESS!";

【讨论】:

以上是关于如何将网页中的字符串输入作为 Java 对象传递给 @RestController?的主要内容,如果未能解决你的问题,请参考以下文章

如何将日期对象作为第一个也是唯一的输入参数传递给 PL-SQL

如何将指针作为参数传递给 COM 对象中的函数?

如何将 unique_ptr 对象作为参数传递给作为库的类

如何将向量作为参数传递给另一个向量?

如何在不指定每一列的情况下将整行作为参数传递给 Spark(Java)中的 UDF?

java spring boot将字符串数组作为json中的参数传递给ajax调用