简单的struts2框架(五)---json

接连以上1到4的struts框架,本次是关于json

因为要用json所以要加组件

加载struts2-json-plugin-2.3.16.3.jar 打开它的struts-plugin.xml,
会发现<package name="json-default" extends="struts-default">
即它继承了struts-default,所以struts.xml里的extends="json-default"
如:

 1 struts.xml:
 2 
 3 <package name="news" namespace="/news" extends="json-default">
 4     <action name="newsAction_*" class="action.NewsAction" method="{1}">
 5         <result name="news_list_json" type="json">
 6             <param name="root">newsLsit</param>
 7             <param name="excludeNullProperties">true</param>
 8             <!-- <param name="excludeProperties"></param> -->
 9             <param name="includeProperties">
10                 <!--json为实体时,直接写属性名,多个逗号分隔: name,id -->
11                 <!--list时:  \[\d\]相当于一个实体-->
12                 \[\d\]\.newsId,
13                 \[\d\]\.newsTitle
14             </param>
15         </result>
16     </action>
17 </package>

 

先了解下面几个的含义
<param name="excludeNullProperties">true</param>排除值为null的
<param name="excludeProperties"></param>json里包含哪些属性
<param name="includeProperties"></param>json里不包含哪些属性

 

不是所有的都转换为json,所以要加限制,即<param name="root">newsLsit</param>
同时在action里将list声明为属性 private List<News> newsLsit;,并且加入set,get方法
代码:

 1 NewsAction.java:
 2 
 3 package action;
 4 import java.util.List;
 5 import service.NewsService;
 6 import com.opensymphony.xwork2.ActionSupport;
 7 import entity.News;
 8 public class NewsAction extends ActionSupport{
 9     private List<News> newsLsit;    
10     private NewsService newsService=new NewsService();    
11     public String findNewsList(){
12         newsLsit=newsService.getNewsList();        
13         return "news_list_json";
14     }
15     
16     public List<News> getNewsLsit() {
17         return newsLsit;
18     }
19     public void setNewsLsit(List<News> newsLsit) {
20         this.newsLsit = newsLsit;
21     }    
22 }

 

各个代码如下:

表示层:jsp页面

<form action="/practice_struts2/news/newsAction_findNewsList.action" method="post">
    <input type="submit" value="获得NewsList的json"/>       
</form>

 

业务层: service组件和action
service方法:

 1 package service;
 2 import java.util.List;
 3 import dao.NewsDao;
 4 import entity.News;
 5 public class NewsService extends NewsDao{    
 6     public List<News> getNewsList(){
 7         //jdbc,调用dao里的相应方法
 8         return super.findNews();
 9     }
10 }

action上面已有NewsAction 代码

 

数据访问层:Dao组件:
省略简单的实体和dao方法

 

小提示:

<param name="root">newsLsit</param>如果是list,接收的result是json的list字符串;如果是一个实体,result是json的实体字符串,这两项需要解析;如果是基本类型,result是基本类型的的String文本,即如果是int i=1,result=“1”;

 

转载于:https://www.cnblogs.com/jiuqing/p/4047846.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值