青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統(tǒng)計

最新評論

初試BeanShell和Apache Commons - Jelly

  項目需要用到一個映射功能,將一個Bean的屬性,條件的映射到另外一個bean的屬性里。剛開始的設計是自己定義一套XML標簽,解析,執(zhí)行。但是這樣的話,特別麻煩,且不說你設計的XML時候易用,易擴展。
  用Google百度了下,發(fā)現(xiàn)使用 BeanShell最為方便, Apache Commons - Jelly 次之(但最接近原有設計)。下面是做的測試例子。

輸出結果:

mapped by BeanShell :
[{dep=ssod, nickName=btpka3, age=18, group=nonage, mailServer=163}, {dep=ssod, nickName=mp3f4, age=25, group=adult, mailServer=gmail}]
mapped by Apache Commons - Jelly :
[{dep=ssod, nickName=btpka3, age=18, group=nonage, mailServer=163}, {dep=ssod, nickName=mp3f4, age=25, group=adult, mailServer=gmail}]


TestMapping.java

package jp.co.nttdata.autofill.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.output.NullOutputStream;
import org.apache.commons.jelly.JellyContext;
import org.apache.commons.jelly.XMLOutput;

import bsh.Interpreter;
import edu.emory.mathcs.backport.java.util.Collections;

public class TestMapping {
    public static void main(String[] args) throws Exception {
        System.out.println("mapped by BeanShell :");
        testBeanShell();

        System.out.println("mapped by Apache Commons - Jelly :");
        testJelly();
    }

    public static void testBeanShell() throws Exception {
        List<Map<String, ?>> destList = new ArrayList<Map<String, ?>>();

        List<Map<String, String>> srcList = new ArrayList<Map<String, String>>();
        Map<String, String> srcMap = new HashMap<String, String>();
        srcMap.put("name", "btpka3");
        srcMap.put("age", "18");
        srcMap.put("mail", "btpka3@163.com");
        srcList.add(srcMap);

        srcMap = new HashMap<String, String>();
        srcMap.put("name", "mp3f4");
        srcMap.put("age", "25");
        srcMap.put("sex", "F");
        srcMap.put("mail", "mp3f4@gmail.com");
        srcList.add(srcMap);

        Interpreter intp = new Interpreter();
        intp.set("srcList", Collections.unmodifiableCollection(srcList));
        intp.set("destList", destList);

        String script = "/autofill/jp/co/nttdata/autofill/test/test.bsh";
        intp.source(script);

        System.out.println(destList);

    }

    public static void testJelly() throws Exception {

        List<Map<String, ?>> destList = new ArrayList<Map<String, ?>>();

        List<Map<String, String>> srcList = new ArrayList<Map<String, String>>();
        Map<String, String> srcMap = new HashMap<String, String>();
        srcMap.put("name", "btpka3");
        srcMap.put("age", "18");
        srcMap.put("mail", "btpka3@163.com");
        srcList.add(srcMap);

        srcMap = new HashMap<String, String>();
        srcMap.put("name", "mp3f4");
        srcMap.put("age", "25");
        srcMap.put("sex", "F");
        srcMap.put("mail", "mp3f4@gmail.com");
        srcList.add(srcMap);

        JellyContext context = new JellyContext();
        context.setVariable("srcList", Collections
                .unmodifiableCollection(srcList));
        context.setVariable("destList", destList);
        String script = "/autofill/jp/co/nttdata/autofill/test/test.xml";
        XMLOutput xmlOutput = XMLOutput.createXMLOutput(new NullOutputStream());
        context.runScript(script, xmlOutput);

        System.out.println(destList);
    }
}


test.bsh

import java.util.List;
import java.util.Map;
import java.util.LinkedHashMap;

        for (Map srcBean : srcList) {
            Map destBean = new LinkedHashMap();
            
            // 項目⓪
            destBean.put("dep", "ssod");

            // 項目①
            destBean.put("nickName", srcBean.get("name"));

            // 項目②
            destBean.put("age", srcBean.get("age"));

            // 項目③
            if (Integer.valueOf(destBean.get("age")) <= 18) {
                destBean.put("group", "nonage");
            } else {
                destBean.put("group", "adult");
            }

            // 項目④
            String srcMailAddr = srcBean.get("mail");
            destBean.put("mailServer", srcMailAddr.substring(srcMailAddr.indexOf("@")+1, srcMailAddr.indexOf(".")));
            
            destList.add(destBean);
        }


test.xml

<?xml version="1.0" encoding="UTF-8"?>
<jelly trim="false" xmlns="jelly:core">
  <forEach items="${srcList}" var="srcBean">
    <new var="destBean" className="java.util.LinkedHashMap" />

    <!-- 項目&#9450; -->
    <set target="${destBean}" property="dep" value="ssod" />

    <!-- 項目① -->
    <set target="${destBean}" property="nickName" value="${srcBean.name}" />

    <!-- 項目② -->
    <set target="${destBean}" property="age" value="${srcBean['age']}" />

    <!-- 項目③ -->
    <choose>
      <invokeStatic var="intAge" className="java.lang.Integer"
        method="valueOf">
        <arg type="java.lang.String" value="${srcBean.age}" />
      </invokeStatic>
      <when test="${intAge le 18}">
        <set target="${destBean}" property="group" value="nonage" />
      </when>
      <otherwise>
        <set target="${destBean}" property="group" value="adult" />
      </otherwise>
    </choose>

    <!-- 項目④ -->
    <invokeStatic var="idx" className="java.lang.Long" method="valueOf">
      <arg type="long" value="${srcBean['mail'].indexOf('@')+1}" />
      <!-- NOTICE : "${1}' class is Integer, but '${1+1}' is Long -->
    </invokeStatic>
    <set target="
${destBean}" property="mailServer"
      value="
${srcBean['mail'].substring(idx.intValue(), srcBean['mail'].indexOf('.'))}" />

    <expr value="
${destList.add(destBean)}

posted on 2013-06-21 16:33 大龍 閱讀(854) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人精品午夜在线观看| 国产欧美一区二区精品婷婷 | 欧美久久久久免费| 亚洲黑丝一区二区| 亚洲国产精品久久久久| 久久婷婷国产综合尤物精品| 在线免费观看视频一区| 亚洲国产精品成人精品| 欧美日韩国产精品一卡| 亚洲综合精品四区| 欧美一区在线视频| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧洲日产国产网站| 国产精品一页| 鲁大师成人一区二区三区| 欧美国产一区二区三区激情无套| 中文国产成人精品久久一| 午夜精品久久久久久久蜜桃app| 国产亚洲精品bt天堂精选| 欧美成人精品影院| 欧美午夜国产| 两个人的视频www国产精品| 欧美精品1区| 欧美在线观看视频一区二区| 久久免费视频观看| 亚洲免费视频一区二区| 久久99在线观看| 一区二区三区四区五区精品视频| 亚洲影视九九影院在线观看| 亚洲成色999久久网站| 99精品久久免费看蜜臀剧情介绍| 国产在线视频不卡二| 亚洲精品国产精品乱码不99| 国产一区二区在线观看免费播放| 亚洲欧洲精品一区二区三区| 国产丝袜美腿一区二区三区| 亚洲精品视频一区二区三区| 娇妻被交换粗又大又硬视频欧美| 亚洲精品免费网站| 在线成人国产| 亚洲欧美综合精品久久成人| 欧美高清视频一区| 久久成人国产精品| 欧美揉bbbbb揉bbbbb| 欧美va亚洲va日韩∨a综合色| 国产精品久久久久国产a级| 亚洲高清视频在线观看| 韩国v欧美v日本v亚洲v| 亚洲欧美另类综合偷拍| 亚洲一区激情| 欧美日韩亚洲成人| 亚洲高清资源| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲资源在线观看| 亚洲在线第一页| 欧美巨乳在线| 亚洲国产精品一区在线观看不卡 | 亚洲人线精品午夜| 久久久综合香蕉尹人综合网| 久久精品99国产精品| 国产精品嫩草影院一区二区| 亚洲视频在线播放| 亚洲视频大全| 欧美日韩亚洲三区| 亚洲第一中文字幕在线观看| 亚洲国产欧美久久| 美女久久一区| 亚洲第一精品影视| 亚洲精品乱码久久久久久黑人| 老巨人导航500精品| 欧美大片在线看| 亚洲高清免费在线| 欧美精品三级| 99综合在线| 亚洲欧美日韩国产成人| 国产精品久久久久久久第一福利 | 在线亚洲免费| 欧美一区成人| 国内精品久久久久国产盗摄免费观看完整版| 亚洲视屏在线播放| 久久高清一区| 精品不卡在线| 欧美大成色www永久网站婷| 亚洲精品美女| 亚洲欧美怡红院| 狠狠爱综合网| 欧美第一黄网免费网站| 一区二区电影免费在线观看| 欧美一区二区三区免费在线看| 国产一区二区三区久久 | 99日韩精品| 欧美亚洲综合在线| 狠狠综合久久| 欧美精品一区二区久久婷婷| 夜夜精品视频| 久久夜色精品国产亚洲aⅴ | 亚洲第一精品影视| 欧美色图一区二区三区| 中文欧美字幕免费| 国产精品国产精品国产专区不蜜| 久久久久se| 亚洲欧洲精品一区二区三区| 欧美日韩国产成人在线免费| 亚洲自拍偷拍视频| 亚洲大胆av| 久久av在线| 99精品国产一区二区青青牛奶| 国产欧美精品日韩精品| 欧美好骚综合网| 欧美在线播放高清精品| 亚洲精品一线二线三线无人区| 久久成人这里只有精品| 亚洲精品在线观看视频| 国产情人节一区| 欧美日韩三级| 久久综合久色欧美综合狠狠| 亚洲专区欧美专区| 亚洲精品午夜| 亚洲电影免费观看高清完整版在线观看| 亚洲一区二区三区四区五区午夜 | 亚洲私人影院| 亚洲日本免费| 亚洲第一在线综合网站| 国产欧美一区二区白浆黑人| 欧美日韩精品欧美日韩精品一 | 亚洲图中文字幕| 亚洲乱码日产精品bd| 欧美电影免费观看网站| 久久综合电影一区| 久久aⅴ乱码一区二区三区| 中文久久精品| 一区二区三区成人| 99国产精品一区| 亚洲欧洲一区二区三区| 永久555www成人免费| 国产农村妇女毛片精品久久麻豆| 欧美日韩亚洲视频一区| 欧美巨乳在线观看| 欧美人与禽性xxxxx杂性| 免费观看日韩| 欧美成人免费在线观看| 欧美xx视频| 欧美成人亚洲成人| 欧美激情欧美狂野欧美精品| 欧美成人首页| 欧美电影免费观看大全| 欧美国产精品人人做人人爱| 欧美激情亚洲精品| 欧美日韩国产高清视频| 欧美日韩亚洲91| 国产精品免费网站| 国产欧美日韩不卡| 国语自产在线不卡| 揄拍成人国产精品视频| 在线视频成人| 99精品欧美一区二区三区| 亚洲视频1区2区| 久久9热精品视频| 你懂的视频欧美| 亚洲韩国精品一区| 在线亚洲欧美专区二区| 欧美一区二区网站| 麻豆视频一区二区| 欧美日韩精品免费观看视一区二区 | 国产精品一区二区久激情瑜伽| 国产欧美1区2区3区| 精品动漫3d一区二区三区| 欧美成人在线免费观看| 欧美一区二区三区久久精品 | 99精品欧美一区二区三区| 99热这里只有成人精品国产| 亚洲视频视频在线| 午夜在线视频一区二区区别| 久久av在线看| 欧美日韩国产一级| 国产精品推荐精品| 国产一区二区三区黄视频| 亚洲精品在线二区| 亚洲欧美另类在线| 久久久精品一区二区三区| 亚洲黄色高清| 亚洲一区二区三区国产| 欧美一区二区在线看| 午夜精品视频在线观看| 欧美在线观看你懂的| 母乳一区在线观看| 欧美少妇一区| 亚洲成人自拍视频| 亚洲天堂成人| 久久久久综合网| 一区二区三区视频在线播放| 欧美一级网站| 欧美激情综合在线| 国产一区二区三区成人欧美日韩在线观看 | 亚洲国产精品久久人人爱蜜臀 | 一区二区三区免费看| 欧美一区深夜视频| 欧美激情一区二区| 亚洲性线免费观看视频成熟| 久久久久综合|