当前位置: 首页 > 面试题库 >

如何使用jQuery Ajax将JavaScript数组发送到Struts动作

许法
2023-03-14
问题内容

我是Struts 2的新手。我想使用jQuery AJAX请求将javascript数组发送到Struts动作类。
警报运行正常,但execute()没有运行。
当我把 System.out.println("language : "+ language);execute()方法,输出

语言null

var langArr = [];
    $("#language").each(function()
    {
      var selectedLang = $("select").val();
      var selectedValues = $(this).val();
      langArr.push(selectedValues);
     });
    alert("Languages : " + langArr);

    $.ajax({
        method: "POST",
        url: "getProjectPost",
        data: { "language" : langArr },
        dataType : "json",
        traditional: true,
        success:
            function()
            {
             alert("Success");
            },
        error: 
           function()
            {
             alert("Error");
            }
    });

这是我的动作课

public class ProjectPostAction {

    private int[] language;

    public final int[] getLanguage() {
        return language;
    }

    public final void setLanguage(int[] language) {
        this.language = language;
    }

    public String execute() throws Exception {          
           System.out.println("language : "+ language[0]);
           return "success";    
    }

问题答案:

$.param当使用进行ajax请求时,jQuery
内部使用参数序列化发送的数据$.ajax

数据应设置为整数数组或带有逗号分隔的整数列表的字符串,因此jQuery可以在发送请求之前正确序列化它。

您只能通过traditional设置将数组参数发送到struts2,因为struts使用类型转换来使用键作为参数名称来填充操作的属性。

因此,该数组应该是原始整数的数组,但是您的数组包含不是原始整数的其他对象。

为了进行演示,您可以看到这一点,demo以了解如何获取参数值并将其序列化,就像执行操作一样$.ajax



 类似资料:
  • 问题内容: 我的jphp.php文件包含以下内容: 并且我的javascript文件包含以下内容: 我已经用php编码了数据数据..现在我想将这两个数据数组发送到javascript …我不知道要使用的正确命令。我对谷歌搜索感到困惑。 请帮忙 。 问题答案: 使用jQuery的简单特定示例: JavaScript页面: 在您的php中:

  • 问题内容: 我想使用jQuery将JavaScript数组发送到servlet 。 当我使用 它返回空值。 如何访问这些值? 问题答案: 将数组作为JS对象的值发送,因此最终得到。 在servlet中,您需要在请求参数名称后加上。 jQuery附加了它们以便对弱类型语言(如PHP)友好。

  • 问题内容: 我想发送一个用JavaScript构造的数组,其中包含多个select的选定值。有没有一种方法可以使用ajax将此数组发送到php脚本? 问题答案: 您可以使用XML或JSON发回到服务器。您的javascript将必须构造该帖子,在XML的情况下,则需要您在javascript中创建它。JSON不仅轻巧,而且更易于在javascript中制作。签出JSON- PHP 来解析JSON。

  • 问题内容: 我有由函数 .push 制成的数组。数组中的数据非常大。如何将此最佳方式发送到PHP脚本? script.php: 最好的方法是什么? 问题答案: 将您的数据字符串编码为JSON。 在你的PHP中 注意 通过POST发送数据时,它必须作为键值对。 从而 是错的。而是:

  • 问题内容: 朋友,我想在JAVA中连接数据并将其传输到COM PORT(虚拟或原始)吗? 问题答案: 引用一些。 我个人从推荐的SerialPort http://serialio.com - 它不是免费的,但它是非常值得的开发商(无稿费)牌费,任何商业项目 。可悲的是,它不再是免版税的,SerialIO.com似乎已重新成为硬件销售商。我不得不在SerialPort上搜索信息。 从个人经验来看,

  • 问题内容: 如何使用Spring RestTemplate发送数组参数? 这是服务器端的实现: 这是我尝试过的: 以下是实际的请求URL,这显然是错误的: 一直在尝试搜索,但是找不到解决方案。任何指针将不胜感激。 问题答案: Spring的UriComponentsBuilder做到了这一点,并且还允许变量扩展。假设您要将字符串数组作为参数“ attr”传递给资源,而该资源只有一个带有路径变量的U