Spark,Form提交时调用函数

Spark,When Form is submitted call function

假设我有表格:

<form method="POST" action="JAVA-METHOD-NAME(foo)>
  <input type="text" name="foo"/>
  <button type="submit"/>
</form>

我如何创建一个 Java 函数来获取 foo 中的文本并对其进行处理?

简答

您不能在视图中调用 Java 方法,但是您可以解决这个问题。

长答案

除非我弄错了,否则视图似乎不知道它们的相关性 Java 类。从 Java(即服务器端),您可以将数据传递给视图。从视图中,您可以使用表单和 urls.

将数据传递到服务器端

解决方案

POST 到 url,然后在 Java 代码中获取 POSTed 的数据。

你的表格:

<form method="POST" action="/example">
   <input type="text" name="foo"/>
   <button type="submit"/>
</form>

你对应的JavaPOST方法:

post("/example", (request, response) -> {
     // Get foo then call your Java method
    String foo = request.queryParams("foo");
    someMethod(foo);
}

使用Java脚本的替代解决方案

使用Java脚本做一些处理。请注意,任何 Java脚本也将与视图一起在客户端上执行,因此您可能不得不在某种意义上使用上述实现方式

<form method="POST" action="action="javascript:handleIt()">
    <input type="text" id="foo" name="foo"/>
    <button type="submit"/>
</form>
...
<script type="text/javascript">
    function handleIt() {
       var foo = document.getElementById('foo').value;
       // Now send foo to server side by POSTing to
       // a URL
    }
</script>