1. jFinal在页面取值是如何做到的
render系列方法
render系列方法将渲染不同类型的视图并返回给客户端。JFinal目前支持的视图类型有:JFinal Template、FreeMarker、JSP、Velocity、JSON、File、Text、Html、QrCode 二维码 等等。除了JFinal支持的视图型以外,还可以通过继承Render抽象类来无限扩展视图类型。
通常情况下使用Controller.render(String)方法来渲染视图,使用Controller.render(String)时的视图类型由JFinalConfig.configConstant(Constants constants)配置中的constants. setViewType(ViewType)来决定,该设置方法支持的ViewType有:JFINAL_TEMPLATE、FreeMarker、JSP、Velocity,不进行配置时的缺省配置为JFINAL_TEMPLATE。
此外,还可以通过 constants.setRenderFactory(IRenderFactory)来设置Controller中所有render系列方法所使用的Render实现类。
以上有很多视图,我就说下默认的最好用的:JFinal Template
JFinal Template Engine 采用独创的 DKFF (Dynamic Key Feature Forward)词法分析算法以及独创的DLRD (Double Layer Recursive Descent)语法分析算法,极大减少了代码量,降低了学习成本,并提升了用户体验。
与以往任何一款 java 模板引擎都有显著的不同,极简设计、独创算法、极爽开发体验,从根本上重新定义了模板引擎
JFinal 模板引擎专为 java 开发者打造,所以坚持两个核心设计理念:一是在模板中可以直接与 java 代码通畅地交互,二是尽可能沿用 java 语法规则,将学习成本降到极致。
因此,立即掌握 90% 的用法,只需要记住一句话:JFinal 模板引擎表达式与 java 是直接打通的。
1、输出指令#( )
与几乎所有 java 模板引擎不同,JFinal Template Engine消灭了插值指令这个原本独立的概念,而是将其当成是所有指令中的一员,仅仅是指令名称省略了而已。因此,该指令的定界符与普通指令一样为小括号,从而不必像其它模板引擎一样引入额外的如大括号般的定界符。
#(…)输出指令的使用极为简单,只需要为该指令传入前面6.4节中介绍的任何表达式即可,指令会将这些表达式的求值结果进行输出,特别注意,当表达式的值为null时没有任何输出,更不会报异常。所以,对于 #(value) 这类输出不需要对value进行null值判断,
#(value)
#(object.field)
#(object.field??)
#(a>b?x:y)
#(seoTitle??"JFinal俱乐部")
#(object.method(),null)
更多用法,还是要去官网看下文档:网页链接
2. 怎么把 json 格式转换成 数组格式
varobj={"pieTes":[{"colors":"Sony","value":7},{"colors":"Samsumg","value":14},{"colors":"LG","value":21},{"colors":"Vizio","value":34},{"colors":"Insignia","value":24}]};
vararr=newArray();
for(variinx.pieTes){
arr.push([x.pieTes[i].colors,x.pieTes[i].value]);
}
alert(arr);
//输出Sony,7,Samsung,14,LG,21,Vizio,34,Insignia,24
alert不会以数组形式显示,实际结果应该如图所示console.log(arr);