011_布尔值内建函数
生活随笔
收集整理的這篇文章主要介紹了
011_布尔值内建函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. c(當用于布爾值時)
1.1. 該內建函數將布爾值轉換為字符串, 針對"計算機語言"而不是用戶。不管boolean_format的設置是什么, 結果是"true"或"false"。
2. then
2.1. 使用于booleanExp?then(whenTrue, whenFalse), 就像是類C語言中的三元運算符(也就是說, booleanExp ? whenTrue : whenFalse)。如果booleanExp評估為布爾值true, 那么就評估并返回第一個參數, 而若booleanExp評估為布爾值false, 那么就評估并返回它的第二個參數。
3. 例子
3.1. 新建一個名為FMBuiltInsForBoolean的動態Web工程, 同時添加相關jar包。
3.2. 編寫FMFactory.java
package com.fm.util;import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import freemarker.template.Configuration; import freemarker.template.TemplateExceptionHandler;public class FMFactory {private final static FMFactory instance = new FMFactory();private FMFactory() {}public static FMFactory getInstance() {return instance;}private Map<String, Configuration> map = new ConcurrentHashMap<String, Configuration>();// 創建單個Configuration實例public synchronized Configuration getCfg(Object servletContext, String path) {if(null != map.get(path)) {return map.get(path);}Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);cfg.setServletContextForTemplateLoading(servletContext, path);cfg.setDefaultEncoding("utf-8");// 布爾值格式化規則cfg.setBooleanFormat("c");cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);map.put(path, cfg);return cfg;}}3.3. 編寫BuiltInsForBoolean.java
package com.fm.action;import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fm.util.FMFactory; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;public class BuiltInsForBoolean extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Configuration cfg = FMFactory.getInstance().getCfg(req.getServletContext(), "/WEB-INF/templates");Template template = cfg.getTemplate("builtinsforboolean.html");Map<String, Object> root = new HashMap<String, Object>();Writer out = new OutputStreamWriter(resp.getOutputStream());try {template.process(root, out);} catch (TemplateException e) {e.printStackTrace();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }3.4. 修改web.xml
3.5. 在/WEB-INF/templates下編寫BuiltInsForBoolean.html
<!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>布爾值內建函數</title></head><body><h2>字符串轉為布爾值</h2>${true?c}<br />${false?c}<br />${true}<br />${false}<h2>三元運算符</h2>${true?then('男', '女')}<br />${false?then('開', '關')}</body> </html>3.6. 運行項目
總結
以上是生活随笔為你收集整理的011_布尔值内建函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 010_数字内建函数
- 下一篇: 012_日期内建函数