『壹』 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)
更多用法,还是要去官网看下文档:网页链接
『贰』 jfinal list<record> 在jsp页面上输出
『叁』 JFinal 类Controller中的renderJavascript方法怎么用
renderJavascript仅仅响应了content type 为"text/javascript" 的文本给客户端。客户端具体怎么使用这些本文,需要根据需求来。
当初设计这个方法是为了使 JFinal 能方便打造无静态资源的极度轻量级小型应用(也即一个jar包走天涯的应用),具体方式如下:
1:html中有如下对js的引用
注意 src 属性后面的url指向的 action
2:创建src 引用到的actoin(此action的controllerKey为 "/js")
?
1
2
3
public void appjs() {
renderJavascript("function test(){alert('JFinal');}");
}
3:在页面中直接使用通过 /js/appjs 引入的js
注意在1中的html 也是在controller中直接生成然后再renderText(htmlContent, "text/html")。另外image这样的也是同样的原理。
『肆』 JFreechart生成的图如何在JSP页面上显示报错问题
唉,我的曲线图保存到文件中后只有框框没哟曲线额
『伍』 jFinal render为什么不跳转到指定的页面
检查你的JSTL的Jar包增强jsp之下的jstl的EL输族核出备悄,添加ModelRecordElResolver,JspRender.isSupportActiveRecord默认值改为false,默认使用仿穗渣EL增强
『陆』 jfinal如何过滤对JSP/html的请求
jfinal对jsp或者html过滤的请求配置:
public class PermissionHandler extends Handler {
@Override
public void handle(String target, HttpServletRequest request,
HttpServletResponse response, boolean[] isHandled) {
int indexJsp= target.lastIndexOf(".jsp");
int indexHtml = target.lastIndexOf(".html");
if (indexJsp!= -1 || indexHtml!= -1) {
System.out.println(target);
if (request.getSession().getAttribute(Const.LOGINUSER) == null) {
System.out.println("没有登陆!跳转到login.html");
target = "/login.html";
} else {
System.out.println("登陆了,放行!");
}
}
nextHandler.handle(target, request, response, isHandled);
}
『柒』 jfinal render 渲染是什么意思
render主要棚让用于页面渲染,根据当前链友局的数据渲染对应页面,相当于struts2中对应的result type="jsp",redirect是跳转到指定url,这告虚个和servlet中一样的。另外还有forwardAction跳转到controller中另一个方法。
『捌』 jfinal renderjson 怎么用el 表达式取
一,js 通过ajax请求请求后台,然后后台通过writer 直接写回浏览器。操作如下:response.setContentType("application/json;charset=utf-8");response.getWriter().write(jsonStr);//json格式的字符串此时js接收到的数据就是js的JSON对象了二, 如果js中拿到的是json格式的字符串,可燃山册以通过 eval('(' + text + ')');来转换为json字符串三,如果唯搭你想用el表达式,那就在reqeust中放置皮宏你需要的数据对象,然后再jsp中就可以通过el表达式来进行填充了;例如,你在后台reqeust.setAttribute('info',map);//将map放入request中转向前台jsp时,就可以用${info.key}来显示对应的值了
『玖』 jfinal怎么用xmlrender通过http发送数据
使用 renderXml(String viewName) 方法需慧陵兄要先做一个用于 xml 输出的模板,例如要输出的数据是汪告 List<Book> booksList:
<Books>
<#list booksList as x>
<book>
<id>${x.id}</id>
<title>${x.title}</title>
</book>
</#list
<Books>
以上是在模板中使用 freemarker 语法将数据迭代输出,假定以上内容前袭保存在 books.xml 文件中,使用 renderXml("books.xml") 即可
『拾』 jFinal render为什么不跳转到指定的页面
1:需要在你自己的主配置文件里面配置所有页面的文件辩稿梁前缀,没携运配置默认是项目的根目录
//配置页面访问主路径
me.setBaseViewPath("WEB-INF/view");
me.add("/demo",DemoController.class,"/demo");
render("index.html");