java - 如何在 Struts 2 中将 url 压入值堆栈

标签 java javascript jsp struts2 valuestack

我使用的是 Struts 2.3.16。

如何将操作 URL 推送到值堆栈上?

我已经尝试过:

<s:push value="methodUrl">
  <s:url action="action" method="method" />
</s:push>

<s:push value="methodUrl">
  <s:url action="action" method="method" var="methodUrl" />
</s:push>

<s:push>
  <s:url action="action" method="method" var="methodUrl" />
</s:push>

即使我有struts.devMode=true,上述所有操作都失败,没有记录任何错误。 只有第三个选项的失败是真正预期的,因为 s:push 需要值。 .

背景: 我需要将 URL 传递给单独的 .js 中的 JavaScript 函数。来自选择标记的文件,如下所示:

<s:select name="actionAttribute" list="attributeList"
          listKey="key" listValue="value"
          onchange="ajaxFunction('%{methodUrl}')" />

我知道我可以使用'<s:url action="action" method="method" />'在 JS 函数中,如果该函数是在我的 .jsp 中定义的文件,但当 JavaScript 位于不同文件中时,这不起作用。

当我输入上面的段落时,我意识到我可以在 JSP 中定义一个 JavaScript 函数,它将 URL 传递给 ajaxFunction .

所以现在我的问题纯粹是学术性的。

有没有办法s:push一个s:url到值栈上?

最佳答案

如果您使用 urlvar 属性标记它会将值放入值堆栈中。

<s:url action="action" method="method" var="methodUrl" />
<s:select name="actionAttribute" list="attributeList"
          listKey="key" listValue="value"
          onchange="ajaxFunction('%{#methodUrl}')" />

您还可以使用不带参数的函数

<s:select name="actionAttribute" list="attributeList"
          listKey="key" listValue="value"
          onchange="ajaxFunction()" />
<script type="text/javascript">
  function ajaxFunction(){
    var methodUrl = '<s:property value="%{#methodUrl}"/>';
    // or even better
    var methodUrl2 = '<s:url action="action" method="method" var="methodUrl" />';
  }
</script>

好的,如果你想push将一个值放入值堆栈中,您应该使用此标签,但该值应该是对对象的引用,它将转换为字符串 url 并作为参数传递给 JS 函数

<s:url action="action" method="method" var="methodUrl" />
<s:push value="%{#methodUrl}">
  <s:select name="actionAttribute" list="attributeList"
          listKey="key" listValue="value"
          onchange="ajaxFunction('%{top}')" />
  <script type="text/javascript">
    function ajaxFunction(url){
      alert(url);
    }
  </script>
</s:push>

关于java - 如何在 Struts 2 中将 url 压入值堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23224957/

相关文章:

java - 应用排序器时删除 JTable 行会导致 IndexOutOfBoundsException

javascript - 从 img 标签的 src 上传图片到 php

java - 使用 Spring MVC 和 JSP 进行响应分块 : how to write contents of JSP into response?

java - 如何在服务器停止时终止 session

javascript - 如何比较 map 函数内部的html元素的ID与 map 函数外部的对象的ID

java - 使用spring、tomcat和hibernate是什么原因导致出现重复请求

java - Android 将其打印到左侧?

java - WildcardPatternSuite 找不到类

java - 如何在 PIG 中转置列和行

javascript - 谷歌自定义搜索——更改 'no results' 消息