欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

StringTemplateParser 简 昆山软件定制开发 单的字符串模板解析器

点击: 次  来源:宝鼎软件 时间:2017-09-01

原文出处: coderknock

为各人先容一个险些全能的Java类库——Jodd【文章示例利用3.7.1版本的jodd】

Jodd公用东西

BeanUtil 最快的bean处理惩罚库。

一个简朴的JavaBean:

/**
 * 拿客
 * 网站:www.coderknock.com
 * QQ群:213732117
 * 三产 建设于 2016年07月02日 22:51:34。
 */
public class Foo {
    private String readwrite;   // 提供 getter 和 setter
    private String readonly;    // 只提供getter
        ... //省略掉个getter和setter
}

利用BeanUtil举办操纵:

import jodd.bean.BeanUtil;

/**
 * 拿客
 * 网站:www.coderknock.com
 * QQ群:213732117
 * 三产 建设于 2016年07月02日 22:56:47。
 */
public class TestFoo {
    public static void main(String[] args) {
        Foo foo = new Foo();
        BeanUtil.pojo.setProperty(foo, "readwrite", "readwritedata");
        System.out.println(BeanUtil.pojo.getProperty(foo, "readwrite").toString());
        BeanUtil.declared.setProperty(foo, "readonly", "readonlydata");
        System.out.println(foo.getReadonly());
    }
}

输出功效:

readwritedata
readonlydata

留意:假如直接对没有setter的readonly属性利用BeanUtil.pojo.setProperty(foo, “readonly”, “readonlydata”);则会报错:

Exception in thread "main" jodd.bean.BeanException: Simple property not found: readonly. Invalid property: Foo#readonly (Foo#readonly)
    at jodd.bean.BeanUtilBean.setSimpleProperty(BeanUtilBean.java:222)
    at jodd.bean.BeanUtilBean._setIndexProperty(BeanUtilBean.java:408)
    at jodd.bean.BeanUtilBean.setIndexProperty(BeanUtilBean.java:400)
    at jodd.bean.BeanUtilBean.setProperty(BeanUtilBean.java:475)
    at bean.TestFoo.main(TestFoo.java:14)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Cache【今朝好像还没有完全开拓完成】 组通用缓存实现。

Printf 为Java提供像C一样名目化值打印。

Printf.str("%+i", 173);     // +173
Printf.str("%04d", 1);      // 0001
Printf.str("%f", 1.7);      // 1.700000
Printf.str("%1.1f", 1.7);   // 1.7
Printf.str("%.4e", 100.1e10);   // 1.0010e+012
Printf.str("%G", 1.1e13);   // 1.1E+013
Printf.str("%l", true);     // true
Printf.str("%L", 123);      // TRUE
Printf.str("%b", 13);       // 1101
Printf.str("%,b", -13);     // 11111111 11111111 11111111 11110011
Printf.str("%#X", 173);     // 0XAD
Printf.str("%,x", -1);      // ffff ffff
Printf.str("%s %s", new String[]{"one", "two"});    // one two

JDateTime 集优雅与最大限度的准确为一体的时间处理惩罚库 【利用教程】

Type Converter 利便高效的范例转换器。

StringUtil 高出100个特别字符串东西要领。

StringTemplateParser 简朴的字符串模板理会器。

import jodd.util.StringTemplateParser;

import java.util.HashMap;
import java.util.Map;

/**
 * 拿客
 * www.coderknock.com
 * QQ群:213732117
 * 建设时间:2016年07月14日
 * 描写:StringTemplateParser
 */
public class JoddStringTemplateParser {
    public static void main(String[] args) {
        // prepare template
        String template = "Hello ${foo}. Today is ${dayName}.";

        // prepare data
        Map<String, String> map = new HashMap<String, String>();
        map.put("foo", "Jodd");
        map.put("dayName", "Sunday");

        // parse
        StringTemplateParser stp = new StringTemplateParser();
        String result = stp.parse(template, new StringTemplateParser.MacroResolver() {
            public String resolve(String macroName) {
                return map.get(macroName);
            }
        });
        // result == "Hello Jodd. Today is Sunday."
    }
}

搜索、扫描、遍历文件的一些简朴的要领。

Class finder 在classpath中快速找到对应的类。

Wildcard 在Java中便捷的利用通配符。

Wildcard.match("CfgOptions.class", "*C*g*cl*");         // true
Wildcard.match("CfgOptions.class", "*g*c**s");          // true
Wildcard.match("CfgOptions.class", "??gOpti*c?ass");    // true
Wildcard.match("CfgOpti*class", "*gOpti\\*class");      // true
Wildcard.match("CfgOptions.class", "C*ti*c?a?*");       // true
Wildcard.matchPath("/foo/soo/doo/boo", "/**/bo*");          // true
Wildcard.matchPath("/foo/one/two/three/boo", "**/t?o/**");  // true

Servlets 各类与Servlet相关的东西集。

Jodd tag library 为JSP提供许多高效实用的标签。

Form tag 利用一个简朴的标签为页面提供自动填充表单的成果。

Class loading in Jodd 为加载类提供一个更好的要领。