一。通过官网demo的映射出Model
1.映射设置:
2.效果图
二.controller层
1.在config中配置路由
add("/user",UserController.class);
2.UserController
package com.kjst.sjzx.base.controller;
import java.util.List;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Page;
import com.kjst.sjzx.base.User;
import com.kjst.sjzx.base.validate.UserValidator;
public class UserController extends Controller{
/**
* 显示User列表 假入页面和方法名一直的话,就会默认调到这个方法的对应页面
*/
public void index() {
// String sql = "select * from t_user order by id desc";
// List<User> list = User.dao.find(sql);
String sql = "from t_user order by id desc ";
Integer pageNumber = getParaToInt("pageNumber",1);
Page<User> list = User.dao.paginate(pageNumber, 10, "select * ", sql);
setAttr("userlist", list);
renderFreeMarker("list.html");
}
/**
* 添加
*/
public void add() {
renderFreeMarker("add.html");
}
/**
* getModel在字段特多时好使用
*/
@Before(UserValidator.class)
public void toAddUser() {
// User user = getModel(User.class);//别名
User user = getModel(User.class,"u");//别名 Jfinal 必杀技快速开发全靠它
user.set("password","11");
boolean flag = user.save();
if (flag) {
redirect("/user/");
}else {
renderText("sorry,插入失败!!");
}
}
/**
* 修改
*/
@Before(UserValidator.class)
public void update() {
User user = getModel(User.class,"u");//别名 Jfinal 必杀技快速开发全靠它
user.set("password","11");
boolean flag = user.update();
if (flag) {
redirect("/user/");
}else {
renderText("sorry,插入失败!!");
}
}
/**
* 删除单个
*/
public void delUserById() {
Integer id = getParaToInt(0);
boolean flag = User.dao.deleteById(id);
if (flag) {
redirect("/user/");
}else {
renderText("sorry,删除失败!!");
}
}
/**
* 删除全部
*/
public void delAll() {
}
/**
* 按照Id查询
*/
public void findUserById() {
Integer id = getParaToInt(0);
User user = User.dao.findById(id);
setAttr("u", user);
renderFreeMarker("update.html");
}
}
三.页面
1.list
<!DOCTYPE html>
<html>
<head>
<title>User列表</title>
<meta name="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Freemarker需要安全输出,页面如果存在NULL 会报错
<h1>User列表</h1> <br>
<p><a href="${contextPath}/user/add">添加</a></p><br>
<table>
<tr>
<td>用户名</td>
<td>密码</td>
<td>手机</td>
<td>邮箱</td>
<td>操作</td>
</tr>
<#list userlist.list as u>
<tr>
<td>${(u.user_name)!''}</td>
<td>${(u.password)!''}</td>
<td>${(u.phone)!''}</td>
<td>${(u.email)!''}</td>
<td>
<a href="${contextPath}/user/findUserById/${(u.id)!''}">编辑</a>
<a href="${contextPath}/user/delUserById/${(u.id)!''}">删除</a>
</td>
</tr>
</#list>
</table>
</body>
</html>
2.form.html
<input type="hidden" name="u.id" maxlength="30" value="${(u.id)!''}">
<p>用户名:<input type="text" name="u.user_name" maxlength="30" value="${(u.user_name)!''}">${(userNameMsg)!''}</p>
<p>密码:<input type="text" name="u.password" maxlength="30" value="${(u.password)!''}">${(passwordMsg)!''}</p>
<p>手机:<input type="text" name="u.phone" maxlength="30" value="${(u.phone)!''}">${(phoneMsg)!''}</p>
<p>邮箱:<input type="text" name="u.email" maxlength="30" value="${(u.email)!''}">${(emailMsg)!''}</p>
<p>操作:<input type="text" value=""></p>
<p><input type="submit" value="提交"></p>
3.add.html
<!DOCTYPE html>
<html>
<head>
<title>添加用户</title>
<meta name="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>添加用户</h1>
<form action="${contextPath}/user/toAddUser" method="post">
<#include "form.html">
</form>
</body>
</html>
4.update.html
<!DOCTYPE html>
<html>
<head>
<title>修改用户</title>
<meta name="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>修改用户</h1>
<form action="${contextPath}/user/update" method="post">
<#include "form.html">
</form>
</body>
</html>