导航:首页 > 文件管理 > 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配置文件相关的资料

    热点内容
    老炮儿三小时版本下载 浏览:313
    matlab怎么调试程序 浏览:2
    winxp升级win7的危害 浏览:496
    网络没连上却不可用是怎么回事 浏览:752
    社区版本 浏览:738
    怎么查微信公众号什么时候开通的 浏览:717
    安装三菱编程闪退怎么回事 浏览:488
    手机怎么创建word文件格式 浏览:694
    c语言连接数据库 浏览:887
    数据线粉色和白色哪个是正 浏览:775
    vb编程应注意什么 浏览:855
    js循环添加控件 浏览:615
    学习计算机网络的作用 浏览:235
    access数据库最新内容怎么调 浏览:203
    上古世纪新版本跑商 浏览:267
    iphone5国际漫游设置 浏览:107
    ipodwatch如何安装app 浏览:114
    谁有微信抢红包的群号 浏览:872
    word07页码从任意页开始 浏览:791
    js禁止滑动事件 浏览:800

    友情链接