前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >struct2 如何返回 JSON 数据 (最最简单的方式,使用 stuct2-json-plugin 即可)

struct2 如何返回 JSON 数据 (最最简单的方式,使用 stuct2-json-plugin 即可)

作者头像
Gorit
发布2021-12-08 21:33:15
发布2021-12-08 21:33:15
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、爬坑之路

困扰了我很久的问题终于解决了!!!

今天记录一下

网上我查阅过许多 struct2 返回 JSON 数据格式的方式,比如使用 Servlet 阶段的 PrintWriter,还有自己转换成 InputStream 流返回 JSON 数据,甚至还有自己封装 JSON 格式数据的。 但是大部分尝试过,但是发现用不了,后来发现了 stuct2 自带的 json 转换的数据就很方便。

就是这个插件

使用这个插件之后,就不需要我们自己另外导 json 数据转换的包了,使用 struct2 自带的 ognl 表达式就可以帮我们注入数据

二、环境搭建

我搭建的是 SSH (stuct2 + hibernate5 + spring5)环境,项目采用 Maven 构建,开发工具是 Idea 2019

感兴趣的同学可以看一看 SSH 开发脚手架

今天只讲 stuct2 如何返回 JSON 数据

2.1 stuct2 的 pom 依赖

代码语言:javascript
代码运行次数:0
复制
    <dependency>
      <groupId>org.apache.strutsgroupId>
      <artifactId>struts2-coreartifactId>
      <version>2.3.35version>
    dependency>

    
    <dependency>
      <groupId>org.apache.strutsgroupId>
      <artifactId>struts2-json-pluginartifactId>
      <version>2.3.8version>
    dependency>

2.2 开发工具配置

这里是我们需要自己添加进去的,不然开发工具识别不了我们写的东西,不然后面写 struct2 配置文件的时候就会爆红

三、代码编写

3.1 编写 AjaxAction

比如我们想要返回一个字符串,就要在在成员变量(“全局变量”)中添加它,并给予对应的 getter 和 setter 方法,你要问为什么,这就是 ognl 表达式要做的事情。

比如我要做一个账户的用户名验证的功能,所以我可以这么写

代码语言:javascript
代码运行次数:0
复制
@Controller("aa")
public class AjaxAction extends ActionSupport {
    private String uname; // 接收前端的用户名
    private String msg;  // 要返回的内容

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    // 返回简单字符串
    public String teststring() {
        // 判断用户是否存在
        if (uname.equals("admin")) {
            msg="账户已经有人注册了";
        } else {
            msg="账户可以使用";
        }
        return "success";
    }
}

3.2 前端页面编写

代码语言:javascript
代码运行次数:0
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Titletitle>
    <jsp:include page="base.jsp"/>  
head>
<body>
<div class="container">
    <form action="checklogin" method="post" class="form-horizontal">
        <div class="form-group">
            <label for="username" class="col-sm-2 control-label">账户:label>
            <div class="col-sm-10">
                <input type="text" class="form-control" name="username" id="username" placeholder="请输入你的账户">
            div>
        div>
        <div class="col-sm-offset-2 col-sm-10">
            <input type="submit" class="btn btn-primary" value="Submit"/>
        div>
    form>
div>
<script type="text/javascript">
    $("#username").on("change",function () {
        $.ajax({
            url: 'checkajax',
            data: {
                uname: $("#username").val()
            },
            type: "POST",
            success:function (data) {
                console.log(data)
            }
        })
    })
script>
body>
html>

3.3 struct2 配置文件编写

这里的 root 就代表你要返回的数据

代码语言:javascript
代码运行次数:0
复制
    <package name="ajax" namespace="/" extends="json-default" >
        <action name="checkajax" class="aa" method="teststring">
            <result name="success" type="json">
                <param name="root">msgparam>
            result>
        action>
    package>

3.4 运行效果图

如果你想要返回 list ,步骤是一样的,和 msg 是一样的方法,使用 ognl 表达式来帮我们完成数据的返回

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、爬坑之路
  • 二、环境搭建
    • 2.1 stuct2 的 pom 依赖
    • 2.2 开发工具配置
  • 三、代码编写
    • 3.1 编写 AjaxAction
    • 3.2 前端页面编写
    • 3.3 struct2 配置文件编写
    • 3.4 运行效果图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档