我目前正在使用Struts2(2.3.7),我面临以下问题
当我在jsp上的表单标记中指定名称空间/x
时
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form namespace="/x">
<s:submit action="z" />
</s:form>
生成的html表单标记包含与声明的y
不同的x
:
<form action="/contextRoot/y/z.action" method="post">
其中y
是前一个请求的命名空间,因此似乎属性命名空间无效。我知道标签是“名称空间感知”Is prefix needed for Struts2 namespace in forms and links?但我想指定一个不同的标签。
答案 0 :(得分:1)
TL;博士
也可以为action
标记添加一些<s:form>
属性。
说明:
如果action
标记中没有<s:form>
属性,则表单操作网址默认为当前请求网址。即Action和命名空间来自当前请求。这样做的副作用是namespace
标记上的<s:form>
属性被忽略。
示例:
当前请求:app/some_namespace/some_action
形式:
<s:form namespace="/x">
<s:submit action="z" />
</s:form>
将为表单url生成类似的内容:
app/some_namespace/some_action
和提交按钮:
app/some_namespace/z