jfinal +beetl集成开发web全集
2016-11-25 18:58
141 查看
jfinal 由于其特性 快速 简单 易上手 被越来越多的程序员重视,beetl 其开发效率极高 维护简单 比jsp性能高2倍 比freemarker 高16倍(大师说的 不是我说的 勿喷) 行了 废话少说 给大家截个图 ![这里写图片描述](http://img.blog.csdn.net/20161125184844309) ![这里写图片描述](http://img.blog.csdn.net/20161125184854996) ![这里写图片描述](http://img.blog.csdn.net/20161125184904559) ![这里写图片描述](http://img.blog.csdn.net/20161125184914434) ![这里写图片描述](http://img.blog.csdn.net/20161125184924996) 直接来代码吧
1.ConfigClass.class
package zh.demo; import com.jfinal.config.Constants; import com.jfinal.config.Handlers; import com.jfinal.config.Interceptors; import com.jfinal.config.JFinalConfig; import com.jfinal.config.Plugins; import com.jfinal.config.Routes; import com.jfinal.kit.PropKit; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.c3p0.C3p0Plugin; import com.jfinal.render.ViewType; public class ConfigClass extends JFinalConfig { @Override public void configConstant(Constants me) { me.setDevMode(true); PropKit.use("config.properties"); // 配置模板 me.setMainRenderFactory(new MyBeetlRenderFactory()); // 获取GroupTemplate模板,可以设置共享变量操作 //GroupTemplate groupTemplate = MyBeetlRenderFactory.groupTemplate; //me.setDevMode(getPropertyToBoolean("config.devModel", false)); me.setViewType(ViewType.OTHER); me.setEncoding("UTF-8"); } @Override public void configRoute(Routes me) { //me.add("/hello", HelloController.class); me.add("/user", UserController.class); } @Override public void configPlugin(Plugins me) { C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password")); ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin); arp.setShowSql(true); arp.addMapping("t_user_tab", User.class); me.add(c3p0Plugin); me.add(arp); } @Override public void configInterceptor(Interceptors me) { } @Override public void configHandler(Handlers me) { // me.add(new ContextPathHandler("ctx")); } }
2.CusDemo.java
package zh.demo; import java.io.IOException; import org.beetl.core.Context; import org.beetl.core.Function; public class CusDemo implements Function { public Object call(Object[] paras, Context ctx) { Object o = paras[0]; if (o != null) { try { ctx.byteWriter.writeString("中国 "+o.toString()); } catch (IOException e) { throw new RuntimeException(e); } } return ""; } }
3.MyBeetlRenderFactory.java
package zh.demo; import org.beetl.ext.jfinal.BeetlRender; import org.beetl.ext.jfinal.BeetlRenderFactory; import com.jfinal.render.Render; public class MyBeetlRenderFactory extends BeetlRenderFactory { @Override public Render getRender(String view) { BeetlRender render = new BeetlRender(groupTemplate, view); return render; } /*@Override public String getViewExtension() { //默认是html 不需要重写 return ".html"; }*/ }
4.User.java
package zh.demo; import com.jfinal.plugin.activerecord.Model; public class User extends Model<User> { /** * */ private static final long serialVersionUID = 5680502164779131689L; public static User me = new User(); }
5.UserController.java
package zh.demo; import java.util.List; import com.jfinal.core.Controller; import zh.tools.GenerateIdKit; public class UserController extends Controller { /** * 注册页面 * * @author zhangheng * @date 2016年11月25日下午3:51:40 */ public void goRegister() { render("register.html"); } /** * 注册 * * @author zhangheng * @date 2016年11月25日下午3:52:46 */ public void register() { long id = GenerateIdKit.getId(); String name = getPara("name"); String password = getPara("pwd"); User user = new User(); user.set("name", name); user.set("pwd", password); user.set("id", id); user.save(); System.out.println("注册成功"); goLogin(); } /** * 登陆页面 * * @author zhangheng * @date 2016年11月25日下午3:52:23 */ public void goLogin() { render("login.html"); } /** * 登陆 * * @author zhangheng * @date 2016年11月25日下午3:52:35 */ public void login() { String name = getPara("name"); String password = getPara("pwd"); List<User> users = User.me .find("SELECT * FROM t_user_tab u WHERE u.name = '" + name + "' AND u.pwd = '" + password + "'"); setAttr("users", users); if (users.size() > 0) { System.out.println("登录成功"); } else { System.out.println("登录失败"); } redirect("/user/list"); } /** * 用户管理页面 * * @author zhangheng * @date 2016年11月25日下午3:51:59 */ public void list() { List<User> users = User.me.find("select * FROM t_user_tab where 1=1"); setAttr("users", users); render("userList.html"); } /** * 删除用户 * * @author zhangheng * @date 2016年11月25日下午3:53:06 */ public void delete() { User.me.deleteById(getParaToLong("id")); redirect("/user/list"); } /** * 更新页面 * * @author zhangheng * @date 2016年11月25日下午3:53:24 */ public void gotoUpdate() { User u = User.me.findById(getParaToLong("id")); setAttr("user", u); render("update.html"); } /** * 更新用户 * * @author zhangheng * @date 2016年11月25日下午3:53:34 */ public void update() { User u = User.me.findById(getParaToLong("id")); u.set("name", getPara("name")); u.set("pwd", getPara("pwd")); u.update(); // list(); // forwardAction("user/list"); redirect("/user/list"); } }
6.beetl.properties
RESOURCE.root=/WEB-INF/ FN.helloP = zh.demo.CusDemo
7.config.properties
jdbcUrl=jdbc:mysql://localhost:3306/demo user=root password=root
最重要的 web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jfinalDemo</display-name> <welcome-file-list> <welcome-file>user/login.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>zh.demo.ConfigClass</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
视图
都是谢类似的html或者jsp 笔者这里就不全部列出来了 如果有需要的朋友 可以私下联系 我放给你们
下面我就贴一个userList.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=8"> <meta http-equiv="Expires" content="0"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Cache" content="no-cache"> <title>list</title> <link href="${ctxPath}/common.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- ${users.~size} --> ${helloP('nihao')} <p class="center">用户列表<p> <table class="table" border="1"> <tr> <td>索引</td> <td>用户名</td> <td>密码</td> <td>编辑</td> </tr> <% for(test in users!){%> <tr> <td> ${testLP.index}</td> <td>${test.name}</td> <td>${test.pwd!''}</td> <td><a href = "delete?id=${test.id}">删除</a> <a href = "gotoUpdate?id=${test.id}">更新</a></td> </tr> <% } %> </table> <a href ="goRegister">注册</a> <a href ="goLogin">登陆</a> </body> </html>
以上内容纯属个人手打 转发请标出来源 谢谢,如果有bug 欢迎大家提
相关文章推荐
- asp.net开发web项目-vss集成环境配置
- 11月14日filter与在web开发中集成spring培训日记
- web开发各种乱码问题处理全集 保证解决99%的乱码错误(包括mysql的乱码解决,使用struts2框架的乱码问题)
- Eclipse安装CXF插件开发java web service 集成Spring
- webservice axis 集成spring,开发测试demo
- asp.net开发web项目-vss集成环境配置
- 从.fbx 到生成web版执行文件,完全不用unity集成开发环境
- mavn构建的web工程中嵌入/集成jetty 开发调试方便 较简单的方法一
- 如何将Ant下Web项目迁移到Hudson实现持续化集成开发
- SSH开发环境的配置:web.xml、Spring集成hibernate和Spring集成Struts2
- 11月14日filter与在web开发中集成spring培训日记
- JBoss4 应用服务器Web开发人员参考手册(9):与Apache集成
- ASP.NET开发WEB项目-VSS集成环境配置
- Eclipse3.6集成Tomcat6.0进行开发Web项目。
- Eclipse安装CXF插件开发java web service 集成Spring
- 11月14日filter与在web开发中集成spring培训日记
- 11月14日filter与在web开发中集成spring培训日记
- asp.net开发web项目-vss集成环境配置
- jfinal下超爽的freemarker自定义标签,web开发的利器
- JFinal -基于Java 语言的MVC极速 web 开发框架