`
javamonkey
  • 浏览: 169098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

beetl1.1 提供的安全输出总结

 
阅读更多


模板引擎往往在渲染模板的时候,变量往往不是预期值,如变量为null,引擎的空指针异常从而导致页面输出异常。beetl提供了一些安全输出。如下:

占位符异常,用于占位符

       ${!(user.name)} ,在占位符号使用!() ,括号里面出现异常,则不作任何输出


Missing Value,用于占位符
       ${user.wife.name!"N/A"} 如果user为空,或者 wife为空,则输出!后面的字符串


循环

   

    在集合中,如果循环为空,则导致异常,可以在集合后面加上!表示如果集合为空,则忽略循环体,不作循环

<%for(user in list!){%>

循环体.................

<%}%>

可以看到模板的预编译代码如下:

if(list!=null){
                int user_index = 0;
                int user_size = list.size();
                for(User user : list){
                    out.write(user_index);
                    out.write(__V0);
                    out.write(user.getName());
                    out.write(__VCR);
                    user_index++;
                }
}

详细可以访问 http://beetl.sourceforge.net/,并下载最新jar包
分享到:
评论
2 楼 chenlei65368 2012-05-04  
<%for(pk in root["keylist"]){%>
     <%if(pk_index-pk_size==-1){%>      ${pk},
     <%}%>
   <%}%>)
<%}%>

if中进行运算会报语法错误<%if(pk_index-(pk_size-1)==0){%>
应该怎么写呢?
1 楼 chenlei65368 2012-05-04  
请教一下:
定义一个变量
<% var s=0;%> <!-- 报错 -->
<%if(root["keylist"].~size!=0) {%>
PRIMARY KEY (<%for(pk in root["keylist"]){%>${pk},<%}%>)
<%}%>

本来是想var s = root["keylist"]的。
直接赋值为0也是报错:
8| <% var s=0;%>
9| <%if(root["keylist"].~size!=0) {%>
10|
=============================================================
错误栈:
null

相关推荐

    springboot+beetl+beetlsql

    Beetl还提供丰富的标签库,支持国际化和自定义标签,提高了开发人员在模板渲染方面的灵活性。 **BeetlSQL** BeetlSQL是基于Beetl的SQL工具集,它是一个轻量级的ORM框架。BeetlSQL简化了数据库操作,通过简单的配置...

    Beetl2.8中文文档

    7. 安全输出:Beetl提供了安全输出符号,能够保证在模板变量、变量属性引用、for循环、占位符输出和try-catch等各个地方进行安全输出。 8. 模板变量:Beetl允许将模板的某部分输出赋值给变量,以便后续处理。这种...

    Beetl2.7.14中文文档.pdf

    提供安全输出符号,可以在模板变量、变量属性引用、循环、占位符输出等环节保证安全的输出,避免恶意代码执行。 5. **模板变量:** 能够将模板的某部分输出赋值给变量,方便后期处理。这在实现复杂页面布局时非常...

    beetl模版引擎文档

    Beetl的扩展语法,如for-else、select-case以及安全输出符号等,非常适合模板开发的需要。它还支持局部渲染技术,能够结合目前流行的JavaScript的Ajax技术,实现动态内容的异步加载和更新。 对于希望开始学习Beetl...

    Spring Boot集成Beetl简单demo

    Beetl 则是一款强大的模板引擎,旨在提供高效、简洁的模板语言,帮助开发者在 Web 开发中快速生成动态内容。本文将详细介绍如何在 Spring Boot 项目中集成 Beetl,并展示一个简单的使用案例。 ### 1. 安装与依赖 ...

    beetl-core

    对于初学者来说,学习Beetl需要先通读基本用法,大部分内容都是讲解语法,因为语法与JavaScript类似,所以可以快速预览,但Beetl毕竟是专门针对模板设计的,因此还需要认真学习安全输出、标签和HTML标签、全局变量、...

    Beetl2.2.3 jar包

    8. **源码分析**:除了jar包之外,还提供了`beetl-core-2.2.3-sources.jar`,这对于开发者深入理解Beetl的工作原理,以及进行二次开发或定制化改造非常有帮助。 综上所述,Beetl2.2.3作为一款视图层模板引擎,不仅...

    beetl 模板demo

    - **自动转义**:为防止XSS攻击,Beetl支持自动对输出内容进行转义。 - **缓存机制**:提高模板的渲染效率,减少不必要的计算。 3. **语法示例**: - 输出变量:`${name}`,其中`name`是Java中的变量。 - 条件...

    Beetl 模板语言使用指南

    - **安全输出**:避免XSS攻击,确保数据安全输出。 - **其他琐碎功能**:如空格处理、自定义错误处理等。 在高级用法中,Beetl强调了以下几点: - **总是使用GroupTemplate**:这是Beetl的一个核心类,用于管理模板...

    spring boot+beetl+beetlsql源代码

    总的来说,Spring Boot+Beetl+BeetlSQL的组合为开发者提供了一套高效的开发工具链,能够快速构建出功能完备、易于维护的Web应用。通过对这些技术的深入理解和实践,开发者可以提升自己的技能水平,更好地应对复杂的...

    Beetl模板引擎入门教程.pdf

    Beetl不仅作为一个模板引擎,还包含了一个强大的ORMapping工具——BeetlSQL,该工具以SQL为中心,提供了简单易用的全功能对象关系映射,支持代码自动生成,简化了数据库操作。 Beetl2.9版本带来了诸多改进和优化,...

    Spring+SpringMVC+Beetl+Beetlsql+Shiro的开发框架源码

    SpringBlade是一个全面而强大的企业级开发框架,它基于一系列成熟的技术栈,包括Spring、SpringMVC、Beetl、BeetlSQL以及Shiro,旨在简化开发过程,提高开发效率,并提供完整的权限管理功能。下面将分别介绍这些技术...

    beetlsql.zip

    总的来说,"beetlsql.zip"提供了一个学习和实践BeetlSQL的好机会,通过分析这些实例,开发者可以深入理解BeetlSQL的特性,提升在Java Web开发中的数据库操作能力。同时,与MyBatis的对比分析也有助于开发者选择更...

    Beetl 模版引擎

    如果在web开发中使用Beetl,还需要阅读关于web提供的全局变量,以及整合ajax的局部渲染技术的相关章节。如果在学习或使用Beetl过程中有任何疑问,可以通过邮件***或加入QQ群***联系作者李家智。更多关于Beetl的信息...

    beetl2demo

    1. **简洁的语法**:Beetl的语法设计简洁明了,易于理解和使用,例如 `${expression}` 用于输出变量,`#if()`、`#for()` 等控制结构则用于条件和循环。 2. **强大的表达式支持**:Beetl支持丰富的Java表达式,可以...

    Beetl2.9 中文文档.pdf

    在安全方面,Beetl提供了强大的安全输出功能,可以防止模板中的安全漏洞,如SQL注入和XSS攻击。 Beetl模板引擎支持的功能还包括模板变量,它允许将模板的一部分输出赋值给变量,之后再进行处理,这有助于完成复杂的...

    beetl-json

    5. **安全特性**:在处理用户输入的JSON字符串时,beetl-json可能提供了防止JSON注入的安全措施。 6. **API使用**:理解并熟练使用beetl-json的API是关键,例如`JsonUtil`是常用的核心类,提供了基本的序列化和反...

    springboot+beetl+mybatis

    这个组合将Spring Boot的快速开发能力、Beetl的模板引擎以及MyBatis的持久层框架巧妙地融合在一起,为开发者提供了强大的工具集。 【SpringBoot】是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发...

    beetl-master.zip

    3. **自动类型转换和安全防护**:Beetl支持自动将模板中的数据转换为适合的类型,并提供了一些防止XSS攻击的安全机制,增强了应用的安全性。 4. **代码生成**:通过Beetl,开发者可以方便地生成代码,如DAO层、...

    Springboot 集成Beetl模板

    Beetl支持多种表达式,包括方法调用、属性访问、算术运算等,并提供了丰富的内置函数和标签,使得模板代码更加简洁。 集成Beetl到Spring Boot项目中,我们需要进行以下步骤: 1. **添加依赖**:首先,我们需要在`...

Global site tag (gtag.js) - Google Analytics