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

JSON Jquery到Struts2动作

解宏扬
2023-03-14
问题内容

我想将我的JSON对象从Javscript发送到Struts2 Action。

样本JSON对象

  {
        "lists":["list1","list2","list3","list4","list5"],
        "maps": {  
            "key4":"value4","key3":"value3","key5":"value5","key2":"value2","key1":"value1"
        },
        "number1":123456789,
        "numberarray1":[1,2,3,4,5,6,7,8,9],
        "string1":"A",
        "stringarray1":["A1","B1"]
    }

我的Jquery Ajax

$.ajax({
    type: 'POST', 
    url: 'json/JSON.action',
    data: JSON.stringify(data),
    dataType: 'json',
    async: false ,
    contentType: 'application/json; charset=utf-8',
    success: function(){window.alert('Done');}
});

Struts.xml配置

<action name="JSON" class="com.actions.json.JsonAction" method="getJSON">
    <result type="json"/>
</action>

我的动作课

public class JsonAction extends ActionSupport {


    private String data;


    public String getJSON() {


        return ActionSupport.SUCCESS;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }



}

我的问题是如何在Action类中接收JSON对象。

注意:POST OF JSON对象成功。.我只是不知道如何通过Action Class接收它。.请帮助谢谢


问题答案:
  1. struts.xml输入的内容有错别字
  2. 您是否已在中定义图块结果和拦截器struts.xml
  3. 您要发送到服务器的json,不包含任何data密钥。因此它将始终为null。由于json表示为对象。您需要通过这种方式将JSON转换为Java对象。

方法1。

lists,maps,number1,numberarray1,string1等等创建setter 。在
此链接
的顶部,定义了执行方法。然后,您可以通过这种方式访问​​所有变量。

方法2。 在您的JavaScript中定义一个新对象。

 var sentData ={};
 sentData ["sentData "] = data;
// And in your ajax call , 
data: JSON.stringify(sentData),

在您的动作课中,为此创建吸气器和吸气器。

Map<K.V> sentData = new HashMap<K,V>();

这将为您提供整个json对象作为Map。



 类似资料:
  • 主要内容:创建动作:,创建视图,执行应用程序,建立多个动作:动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架。每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑。 但动作也提供其他两个重要的能力。首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果。二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回。 创建动作: 在Struts2的动作

  • 主要内容:1. 动作 - Action,2. 可选动作接口,3. ActionSupport,4. 动作注释,总结在Struts2中,会花大部分的时间用在用动作来处理工作。动作类包含业务逻辑,获取资源包,保存数据,验证,并选择应发回给用户的视图的结果页面。这是Struts2的核心,所以必须要了解动作的基本概念。 1. 动作 - Action Struts 2动作不强迫你实现任何接口或扩展类,它只是需要你实现一个 execute()方法返回一个字符串来表示其应该返回的结果页面。 在struts.x

  • 问题内容: 我想从一个请求转发 的Servlet 来 操作 这样使用这样的 没用 我该如何解决这个问题? 问题答案: 为此,您可能还需要将过滤器设置为在FORWARD上运行(并在代码中显示INCLUDE,尽管您声明要使用FORWARD):

  • 主要内容:映射拦截动作,参考Struts 2的开发者用来声明行为属于一个包,扩展 “struts-default“, 其中包含默认设置的拦截。 拦截器的默认设置进行分组为“defaultStack”在struts-default.xml文件中,它位于 struts2-core.jar 文件,“defaultStack”提供所有的核心Struts2功能,这是最适合应用的需要。 试着学习struts-default.xml文件,

  • 主要内容:1. 域对象,2. 动作 - Action,3. JSP页面,4. struts.xml,5. 示例这里我们创建一个web工程为:struts2-modeldrive ,用于讲解演示Struts2模型驱动这一章内容的学习。 如果一个动作实现了“模型驱动”- ModelDriven 接口,它就获得了表单数据自动传输到对象的额外能力。请参见下面的完整的例子: 1. 域对象 一个顾客(customer)对象,有 setter 和 getter 方法。 Customer.java 2. 动作

  • 下面是我的代码: 导入com.opensymphony.xwork2.ActionSupport; 导入java.sql.DriverManager;导入java.sql.ResultSet; 附注。我使用Intellij Idea 14.1.4 有人知道原因吗?