java - 为什么生成的 URL 中缺少我的参数值?

标签 java url struts2 param

这是我的代码:

<s:iterator value="ChapterTreeList" id="chapterTree">
  ...
    <s:url 
        id="deployChaptersUrl"
        action="ajaxDeployChapter"
        includeContext="false">
      <s:param 
               name="nodeId"
               value="%{#chapterTree.nodeId}"/>
    </s:url>

    <s:form
         id="deployChapters%{#chapterTree.nodeId}" 
         action="%{deployChapterUrl}"
         theme="simple"
         method="POST">
    </s:form>

    ...
</s:iterator>

我期望有多种形式,如下所示:

<form 
     id="deployChapters27623"
     name="deployChapters27623"
     action="/path/to/ajaxDeployChapter.action?nodeId=27623" <-- nodeId here
     method="POST">
</form>

但我得到的是这样的表格:

<form 
     id="deployChapters27623"
     name="deployChapters27623"
     action="/path/to/ajaxDeployChapter.action" <-- nodeId is missing here
     method="POST">
</form>

Struts 2.3.15.1

最佳答案

POST HTTP 方法将参数发送到请求正文中。这是支持将参数放入查询字符串的 POSTGET 之间的区别。

因此,您甚至不应该尝试将查询字符串作为 POST 的一部分发送。无论如何它都不会起作用。如果您需要发送 nodeId,您有 2 个选择;

  1. 将其作为 URL 路径发送:/path/to/ajaxDeployChapter.action/27623
  2. 创建隐藏表单字段nodeId并填充其值。

关于java - 为什么生成的 URL 中缺少我的参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687758/

相关文章:

java - 哈希表数组搜索中的空指针异常

java - 当我想在方法中引用实例变量时,我应该使用 "this"关键字吗?

java - 如何为 Java 配置代理设置?

asp.net:在普通的非服务器端 html 控件中引用相对于 root 的页面

java - 重定向到另一个 Action 期间的Struts 2参数编码问题

java - Whitelabel错误页面部署到服务器后出现错误

java - hibernate 映射文件中的 Id 和 Property 元素

java - 如何在 JSF 项目中获取文件资源

javascript - Tinymce 无法正确显示 html?

java - 如何使用 jQuery 将 JSON 数据发布到 Struts2 Action 类