首页 > 代码库 > 简单的struts2框架(五)---json

简单的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\]\.newsTitle14             </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=http://www.mamicode.com/"获得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方法

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