您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】struts框架返回json数据
不忘初心 2019-04-30 围观() 评论() 点赞() 附件(1) 【JAVA开发】
简介:在之前的几个框架案例中,都没有讲到Struts如何返回json数据,都是只返回了jsp页面,现在就基于ssm框架来给大家展示一下如何配置json响应。
在之前的几个框架案例中,都没有讲到Struts如何返回json数据,都是只返回了jsp页面,将之前的笔记翻了个遍,也没有找到相关的记录,看来是我自己遗漏了这块儿的知识点,现在就基于ssm框架来给大家展示一下如何配置json响应。
xml配置版:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!--这里的一段package配置,对应TestController中的json返回,如果非注解模式,可以参考此配置-->
<package name="json" extends="json-default">
<action name="book_list_json" class="com.ssm.controller.TestController" method="list_json">
<result name="test_json" type="json">
<!-- 默认将会序列所有有返回值的getter方法的值,而无论该方法是否有对应属性,可以使用root指定返回对象 -->
<param name="root">students</param>
</result>
<!-- 指定是否序列化空的属性 -->
<!--
<param name="excludeNullProperties">true</param>
-->
<!-- 这里指定将序列化dataMap中的那些属性 -->
<!--
<param name="includeProperties">userList.*</param>
-->
<!-- 这里指定将要从dataMap中排除那些属性,这些排除的属性将不被序列化,一半不与上边的参数配置同时出现 -->
<!--
<param name="excludeProperties">SUCCESS</param>
-->
</action>
<action name="book_list_page" class="com.ssm.controller.TestController" method="list_page">
<result name="test_page">/book_list.jsp</result>
</action>
</package>
</struts>
注解版:
package com.ssm.controller;
import com.ssm.entity.Book;
import com.ssm.entity.Student;
import com.ssm.service.BookService;
import com.ssm.service.StudentService;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import java.util.List;
@Controller
@Scope("prototype")
@Namespace("/test")
@ParentPackage("json-default")// 必须为json-default,而且json-default继承了struts-default
public class TestController extends BaseController {
private List<Book> list;
private List<Student> students;
@Autowired
private BookService bookService;
@Autowired
private StudentService studentService;
/**
* 返回json数据,@Result的参数也需要改变一下,页面使用location指定,json就需要用type参数来指定
* <p>
* 关于params参数的详细值,可以参考:{@link org.apache.struts2.json.JSONResult}
* <p>
* TestController定义了有get、set的变量,当我们想具体指定返回哪一个的时候,可以使用root参数,如:params = {"root", "students"},就只会返回students,而不会返回list
*/
@Action(value = "book_list_json", results = {@Result(name = "test_json", type = "json", params = {"root", "list"})})
public String list_json() {
list = bookService.list(null);
students = studentService.list(null);
return "test_json";
}
/**
* 由于json-default继承了struts-default,所以也同时支持返回页面
*/
@Action(value = "book_list_page", results = {@Result(name = "test_page", location = "/book_list.jsp")})
public String list_page() {
list = bookService.list(searchText);
return "test_page";
}
public List<Book> getList() {
return list;
}
public void setList(List<Book> list) {
this.list = list;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
启动项目之后,访问http://localhost:8080/test/book_list_json就可以看到json的返回了,如下图:
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
- springboot使用jackson处理时间碰到的两个坑
- SpringMVC返回JSON数据时日期格式化问题
- spring框架返回json数据null转空字符串
- jackson自定义序列化器,指定返回对象中的某个字段
- IntelliJ IDEA 2024.2发布之后强推新UI,如何恢复老的经典UI界面
- Uninstall hasn't detected folder of intelli] lDEA installation. Probablyuninstall.exe was moved from the installation folder.
- 公众号CPS变现新宠:微赚淘客查券返利机器人,开启智能省钱赚钱新时代
- 高返利优惠券公众号推荐
- 返利公众号可信吗安全吗?返利机器人哪个佣金高?
- 唯品会购物返利公众号大揭秘:哪些真正好用的返利公众号?
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们