Struts2写接口返回json数据

时间:2021-05-25 17:53:50

公司老项目Struts,写了一些接口的方法,记录下来。

第一种:

struts.xml配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 该 属性指定Struts 2中的action由spring容器创 建 -->
<constant name="struts.objectFactory" value="spring" />
<package name="ajax" extends="json-default" namespace="/">
<action name="testAjaxJson" class="StudentAction">
<result type="json">
<param name="root">ajaxResult</param>
</result>
</action>
</package>
</struts>

Action:

package com.mangocity.ship.web.action;

import com.alibaba.fastjson.JSONObject;
import com.opensymphony.xwork2.ActionSupport;

public class StudentAction extends ActionSupport {
private JSONObject ajaxResult;

public String queryStudent() {
JSONObject json = new JSONObject();
json.put("code", "00");
json.put("Message", "Success");
return SUCCESS;
}

public JSONObject getAjaxResult() {
return ajaxResult;
}

public void setAjaxResult(JSONObject ajaxResult) {
this.ajaxResult = ajaxResult;
}

}

访问地址http://localhost:8080/TestAjax/testAjaxJson!queryStudent.shtml

第二种:

struts.xml配置文件像平常返回页面一样配置,但是注意返回的jsp文件的内容如下:

<%@ page contentType="text/html;charset=utf-8"%>${rsJson}

其中用el表达式获取action中的rsJson属性值,这个属性就是接口要返回的数据。

这种方式只是在公司内网各个业务线使用的接口,如果是对外的不建议这样使用。