首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

beetl1.1 提供的保险输出总结

2012-07-15 
beetl1.1 提供的安全输出总结模板引擎往往在渲染模板的时候,变量往往不是预期值,如变量为null,引擎的空指

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包 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

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){%>
应该怎么写呢?

热点排行