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

    热点内容
    是从当前文件夹开始构成的路径 浏览:307
    零基础c语言编程买什么书 浏览:520
    微信支付resultcode 浏览:224
    如何编程继电器模块 浏览:698
    颜色配置文件和图像 浏览:595
    小米云端怎么同步数据 浏览:420
    苹果手机微信文件如何转钉钉 浏览:310
    跨境电商新政文件 浏览:396
    什么app能看香港房 浏览:590
    丧尸电视剧哪个app看 浏览:196
    电脑版上传视频找不到文件在哪 浏览:164
    javastringtemplate 浏览:594
    联想启天m7300能升级内存吗 浏览:698
    精雕怎么打开图片文件 浏览:161
    ug编程镗孔g76如何使用 浏览:719
    7岁到18岁少儿编程学什么 浏览:413
    mac文件怎么打印 浏览:756
    农药登记许可证查询哪个网站 浏览:857
    素材站用什么网站系统 浏览:173
    ug如何用铰刀编程 浏览:647

    友情链接