forms - Struts2表单标签中的属性命名空间不起作用

标签 forms jsp struts2 struts-tags

我目前正在使用 Struts2 (2.3.7),但遇到以下问题。
当我在 jsp 上的表单标记中指定 namespace /x 时:

<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form namespace="/x">
    <s:submit action="z" />
</s:form>

生成的 html 表单标记包含与声明的 x 不同的 y:

<form action="/contextRoot/y/z.action" method="post"> 

其中y是上一个请求的命名空间,所以看起来属性命名空间没有作用。我知道标签是“命名空间感知的”Is prefix needed for Struts2 namespace in forms and links?但我想指定一个不同的。

最佳答案

tl;博士

放一些action归因于您的<s:form>标签也是如此。

说明:

如果没有action <s:form> 中的属性标签,然后表单操作 url 默认为当前请求 url。即操作和命名空间来自当前请求。这样做的副作用是namespace属性 <s:form>标签被简单地忽略。

示例:

当前请求:app/some_namespace/some_action

形式:

<s:form namespace="/x">
    <s:submit action="z" />
</s:form>

将为表单网址生成类似的内容:

app/some_namespace/some_action

提交按钮:

app/some_namespace/z

关于forms - Struts2表单标签中的属性命名空间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432590/

相关文章:

java - 将值列表从 jsp 传递到 Struts 2 中的 Action 类

javascript - 提交按钮在执行 1 个功能后不会发布数据

具有动态表单的 Django FormWizard

javascript - 为什么在 if 条件为 false 的情况下提交表单?

jsp - 在jsp中使用jSTL打印ArrayList

java - JSP 中动态生成的链接未出现

java - 使用单选按钮并将其隐藏

java - REST API 插件 - 使用正文而不是查询字符串作为参数

java - 使用 JDBC JobStore 的 Quartz 调度器

javascript - 首先触发事件,然后转到 url