zoukankan      html  css  js  c++  java
  • 简单的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”;
  • 相关阅读:
    Python 线程(三):Condition(条件变量)
    Python 线程(二):简单锁实现线程同步
    Python 线程(一):创建线程
    Python 正则表达式
    Python List 、 元组、字典操作
    Python 特殊函数(filter, map, reduce等)
    (一) log4cpp的安装
    (六) 字符和字符串
    (五) 使用DLL函数
    (四) 自定义函数
  • 原文地址:https://www.cnblogs.com/jiuqing/p/4047846.html
Copyright © 2011-2022 走看看