导航:首页 > 文件管理 > strutsjson配置文件

strutsjson配置文件

发布时间:2023-01-16 19:29:21

jsp页面通过action获取不到json数据

JSP页面接收不到ACTION返回的JSON数据是因为在struts的配置文件中返回数据类型指定错误导致,正确的方法是指定application/json返回。
1、在action的配置中写法如下:
<action name="write" class="json.JsonAction" method="write" />
2、在具体要返回的方法中写法如下:

public void write() throws IOException{
HttpServletResponse response=ServletActionContext.getResponse();
/*
* 在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),
* HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。这样就会
* 造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。
* */
response.setContentType("application/json;charset=utf-8");
//response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//JSON在传递过程中是普通字符串形式传递的,这里简单拼接一个做测试
String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"张三\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}";
out.println(jsonString);
out.flush();
out.close();
}

⑵ struts2 global-exception-mappings global-results 配置在使用json包失效的问题

把struts-default 改为json-default,完毕

⑶ struts2配置文件中返回json怎样接收的呢

Action返回的json前台用ajax可以接受,如果不是ajax发出的请求最好用定义域传值,request.setAttribute()

⑷ struts2 json配置文件

LZ是新手,struts2 return null时是不会去执行配置文件的<result>的,出来当然没有数据。多看看基础的东西吧

⑸ struts2 怎样读取json数据

一.认识JSON

JSON是一种轻量级、基于文本、与语言无关的数据交换格式,可以用文本格式的形式来存储或表示结构化的数据。

二.POST请求与Content-Type: application/json

常用的HTTP请求方法有GET, POST, PUT, DELETE等。在提交POST请求时,请求数据放在消息体(Body)中,请求数据的格式及编码方式用Content-Type来指定。如我们常用的表单<form>提交,其Content-Type默认为application/x-www-form-urlencoded,提交的数据按照key1=val1&key2=val2进行编码,服务器端也能很容易地解析K-V值。

JSON的出现,让交换的数据不再仅限于简单的K-V结构,而可以有更加复杂的层级,特别适合于RESTful接口。在发送请求时,指定Content-Type为application/json,即可使用JSON字符串作为请求的数据。而在服务器端接收到该请求后,将按照JSON字符串对请求数据进行处理。

三.Struts2接收JSON请求

在Struts2的Action中提取Content-Type为application/x-www-form-urlencoded的POST参数,我们非常熟悉:在Action中定义属性及其getter, setter方法,接收到请求时,默认会将与属性同名的参数值赋予该属性。

但是对Content-Type为application/json的请求数据,Struts2默认无法解析。因为请求的JSON数据需从输入流中读取出来,无法直接从ServletRequest的请求参数中解析。很容易想到,要读取JSON请求数据,最直接的方式就是从输入流读取。而同时,Struts2的strus2-json-plugin也提供了有关的拦截器,对JSON请求数据进行解析。下面将对两种方案进行分析:

1.从输入流中读取JSON请求数据,以下是在Action中实现的一个读取输入流数据的方法

  • 解析得到JSON对象后,遍历JSON对象,取出K-V,通过反射的V设置给予K相同的属性

  • 开发者可根据自己的需求进行选择:从输入流直接读取JSON请求数据,或使用struts2-json-plugin对JSON请求数据进行处理。

    ⑹ struts2配置文件中 type="json"无法使用

    struts 的配置文件中的package要继承json-default ,把原来的struts-default 换掉就好了

    ⑺ struts2怎么返回json数据

    <?xmlversion="1.0"encoding="UTF-8"?>
    <!DOCTYPEstrutsPUBLIC
    "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
    "
    <struts>
    <packagename=""extends="json-default"namespace="">


    <actionname=""class=""method="">
    <resulttype="json">
    以下是变量名为loginUser对象的某些指定属性
    <paramname="includeProperties">
    loginUser.id,
    loginUser.loginName,
    loginUser.name,
    loginUser.roleNames
    </param>

    以下是变量名为loginUser对象的全部属性,多个对象用逗号
    <paramname="includeProperties">
    loginUser.*,
    loginUser1.*
    </param>

    以下是集合里的某些指定属性
    <paramname="includeProperties">
    weekScheles[d+].id,
    weekScheles[d+].startDate,
    weekScheles[d+].endDate,
    weekScheles[d+].title,
    weekScheles[d+].scheleCount
    </param>
    </result>
    </action>
    </package>
    </struts>

    注意package标签,extends要写成json-default

    Struts2处理JSON只需要在xml文件里就可以完成,但是要注意,能够直接作为JSON返回的必须是Action类里的属性,方法中的属性不能使用此方式直接返回

    阅读全文

    与strutsjson配置文件相关的资料

    热点内容
    ps自动生成的文件格式 浏览:232
    mac应用程序打不开了 浏览:836
    qq飞车手游内测版下载地址 浏览:927
    中文网站翻译成俄语多少钱 浏览:107
    文件名加标题 浏览:644
    共享数据怎么被冻结了 浏览:150
    如何登记考勤数据 浏览:640
    苹果6s前置照片效果 浏览:171
    企业微信素材库文件下载链接 浏览:582
    pdf文件怎么取消标黄 浏览:781
    打电话时不能使用网络是什么原因 浏览:919
    ps怎么将文件合并 浏览:747
    java的日期格式化 浏览:981
    电脑应用程序怎么关 浏览:986
    微信上链接在哪个文件夹 浏览:691
    欧姆龙安装打开找不到密钥文件 浏览:302
    苹果基本表情 浏览:128
    我的世界教育版编程在哪里 浏览:842
    pong文件夹找不到 浏览:759
    69版本黑切 浏览:997

    友情链接