jfinal学习1——tomcat下搭建最初环境

首先建立一个web工程

导入三个基础包到webroot >WEB-INF> lib下

jfinal-2.2-bin-with-src.jar,

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

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


配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  	<filter>
		<filter-name>jfinal</filter-name>
		<filter-class>com.jfinal.core.JFinalFilter</filter-class>
		<init-param>
		<param-name>configClass</param-name>
		<param-value>com.xy.common.MainConfig</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>jfinal</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping> 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

创建入口类 MainConfig 继承jfinalconfig

package com.xy.common;

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.render.ViewType;

public class MainConfig extends JFinalConfig {

	@Override
	public void configConstant(Constants me) {
		me.setViewType(ViewType.JSP);

	}

	@Override
	public void configHandler(Handlers me) {
		// TODO Auto-generated method stub

	}

	@Override
	public void configInterceptor(Interceptors me) {
		// TODO Auto-generated method stub

	}

	@Override
	public void configPlugin(Plugins me) {
		// TODO Auto-generated method stub

	}

	@Override
	public void configRoute(Routes me) {
		me.add("/", IndexController.class);

	}

}

创建IIndexController类 继承controller方法

package com.xy.common;

import com.jfinal.core.Controller;

public class IndexController extends Controller {
	public void index(){
		render("index.jsp");
	}
}

然后部署服务器启动tomcat 就可以访问了;






可以自由收藏管理个人常用网址的导航网     666导航网   



可以自由收藏管理个人常用网址的导航网      666导航网   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值