Jfinal学习和环境的搭建

问题?Jfinal学习和环境的搭建、


一、Jfinal是什么?

JFinal基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。

二、Jfinal的优势原则

JFinal 项目开发始于2011年初,作者詹波(James Zhan),JFinal将一直坚持以下设计目标开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在坚持以上设计目标的同时,基于微内核+全方位扩展型架构,打造功能极度全面WEB+ORM开发框架。彻底解放开发者的生产力,彻底改善开发者的开发体验,让软件开发成为一件轻松愉快的事情。


三、Jfinal环境的搭建


                  


1.建web工程,导入官方Jfinal的jar包(jfinal-2.1-all.zip、jfinal-2.1_demo.zip)案例及包下载:点击打开链接

c3p0-0.9.5.1.jar

cos-26Dec2008.jar

javax.servlet.jsp.jstl-1.2.0.v201105211821.jar

jfinal-2.1-bin-with-src.jar

mchange-commons-java-0.2.10.jar

mysql-connector-java-5.1.20-bin.jar

org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar




2.创建数据库: JfinalEg1
3.创建资源配置文件:config.properties


配置文件内容:
jdbcUrl=jdbc:mysql://127.0.0.1/jfinal_demo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
user = root
password =root
devMode = true


4.配置文web.xml中Jfinal过滤类的实现

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 JFinal + Vue 的 demo 代码,仅供参考: ## JFinal 部分 ### Controller ```java public class UserController extends Controller { public void index() { render("index.html"); } public void getUsers() { List<User> userList = UserService.getAllUsers(); renderJson(userList); } public void addUser() { User user = getModel(User.class); boolean isSuccess = UserService.addUser(user); if (isSuccess) { renderJson(Result.success("添加成功")); } else { renderJson(Result.failure("添加失败")); } } public void deleteUser() { int userId = getParaToInt(); boolean isSuccess = UserService.deleteUser(userId); if (isSuccess) { renderJson(Result.success("删除成功")); } else { renderJson(Result.failure("删除失败")); } } } ``` ### Service ```java public class UserService { public static List<User> getAllUsers() { return Db.find("SELECT * FROM user"); } public static boolean addUser(User user) { return user.save(); } public static boolean deleteUser(int userId) { return Db.deleteById("user", "id", userId); } } ``` ## Vue 部分 ### index.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JFinal + Vue Demo</title> </head> <body> <div id="app"> <h1>User List</h1> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> <th>Gender</th> <th>Operation</th> </tr> </thead> <tbody> <tr v-for="user in userList" :key="user.id"> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.age }}</td> <td>{{ user.gender }}</td> <td><button @click="deleteUser(user.id)">Delete</button></td> </tr> </tbody> </table> <h1>Add User</h1> <form @submit.prevent="addUser"> <div> <label for="name">Name:</label> <input type="text" id="name" v-model="userName"> </div> <div> <label for="age">Age:</label> <input type="number" id="age" v-model="userAge"> </div> <div> <label for="gender">Gender:</label> <select id="gender" v-model="userGender"> <option value="male">Male</option> <option value="female">Female</option> </select> </div> <button type="submit">Add</button> </form> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> var app = new Vue({ el: '#app', data: { userList: [], userName: '', userAge: '', userGender: 'male' }, mounted: function() { this.getUsers(); }, methods: { getUsers: function() { axios.get('/users').then(response => { this.userList = response.data; }); }, addUser: function() { axios.post('/users', { name: this.userName, age: this.userAge, gender: this.userGender }).then(response => { alert(response.data.msg); if (response.data.code == 0) { this.getUsers(); } }); }, deleteUser: function(userId) { axios.delete('/users/' + userId).then(response => { alert(response.data.msg); if (response.data.code == 0) { this.getUsers(); } }); } } }); </script> </body> </html> ``` ## 注意事项 1. 在 JFinal 使用 `render("index.html")` 渲染 Vue 的页面; 2. 在 Vue 的 `axios` 请求,需要加上 JFinal 的路由前缀,例如 `/users`; 3. 在 Vue 的 `axios` 请求,需要加上 `Content-Type: application/json` 的请求头,否则 JFinal 无法解析请求体; 4. 在 Vue 的 `axios` 请求,需要将数据放在请求体,例如 `{ name: this.userName, age: this.userAge, gender: this.userGender }`; 5. 在 Vue 的 `axios` 请求,需要将 JFinal 返回的 JSON 数据的 `code` 和 `msg` 提取出来,例如 `response.data.code` 和 `response.data.msg`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值