JSP 没有JS的动态表单动作属性?

JSP dynamic form action attribute without JS?

我需要通过单击表单提交按钮来发送 http post 请求。我有一个表格:

<form action="..." method="DELETE">
    <input type="text" name="id" id="id" />
    <input type="submit" />
</form>

是否可以使用用户在文本字段中输入的值动态设置表单的 action 属性?例如。

#id=120 -----> action = "users/120"

不需要设置action属性,但是可以不用JS,仅使用JSPJSTL来提交表单吗

不,不是。 JSP 用于在服务器端渲染 HTML ,它在客户端不起作用,至少它不是为此开发的。因此,您应该在服务器上渲染一次操作,或者如果需要用户交互则使用 javascript(您也可以使用 AJAX 更新页面状态并在服务器上重新渲染页面)。

您可以尝试创建一个控制器(也可以是 servlet),它捕获所有 POST 到 "users" 的请求,读取 id 参数并重定向到 "users/{idReadFromRequestParameters}" URL

如果您绝对反对使用 javascript,我想到的唯一解决方案如下:

  1. 向服务器提交动作到特定的url,独立于id
  2. 从请求参数中检索 id
  3. 在服务器端重定向到 users/id

实际实现取决于您在服务器端使用的框架。

JSP 或 JSTL - 它是服务器端 "template generator"... 它无法了解客户端操作,例如用户何时填写输入。

所以没有任何前端逻辑是没有办法做到的。

此行为只能通过重定向到您需要的 URL 的附加控制器方法来模拟。