• JFinal项目搭建


    1、Myeclipse中 新建 Dynamic Web Project  

    导入jar包

    2、配置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_3_0.xsd" id="WebApp_ID" version="3.0">  
      <display-name>JFinalDemo</display-name>  
      <filter>  
        <filter-name>jfinal</filter-name>  
        <filter-class>com.jfinal.core.JFinalFilter</filter-class>  
        <init-param>  
            <param-name>configClass</param-name>  
            <param-value>com.demo.common.CommonConfig</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>  

    3、配置文件config.properties

    jdbcUrl = jdbc:mysql://localhost:3306/jfinal?useUnicode=true&characterEncoding=utf-8
    user = root
    password =
    devMode =true
    

    4、配置jfinal启动文件

    package com.demo.common;
    
    import com.demo.common.controller.BlogController;
    
    public class CommonConfig extends JFinalConfig {
    
    	@Override
    	public void configConstant(Constants me) {
    		loadPropertyFile("config.properties");
    		me.setDevMode(getPropertyToBoolean("devMode",false));
    		me.setViewType(ViewType.JSP);
    		me.setBaseViewPath("/WEB-INF/view");
    	}
    
    	@Override
    	public void configRoute(Routes me) {
    		me.add("/blog", BlogController.class);
    		me.add("/hello", HelloController.class);
    	}
    
    	@Override
    	public void configPlugin(Plugins me) {
    		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"));
    		me.add(c3p0Plugin);
    		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
    		me.add(arp);
    		arp.addMapping("blog",Blog.class);
    	}
    
    	@Override
    	public void configInterceptor(Interceptors me) {
    		// TODO Auto-generated method stub
    
    	}
    
    	@Override
    	public void configHandler(Handlers me) {
    		// TODO Auto-generated method stub
    
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		JFinal.start("WebRoot", 81, "/", 5);
    	}
    
    }
    

    5、控制器

    package com.demo.common.controller;
    
    import java.util.Date;
    
    public class BlogController extends Controller {
    	public void index(){
    		setAttr("blogs", Blog.me.find("select * from blog"));
    		render("index.jsp");
    	}
    	public void add(){
    		String dosubmit = getPara("dosbumit");
    		if(dosubmit==null || dosubmit.length()<=0){
    			render("add.jsp");
    		}else{
    			Blog blog = getModel(Blog.class,"blog");
    			blog.set("time", new Date());
    			blog.save();
    			index();
    		}
    	}
    	public void del(){
    		Integer id = getParaToInt(0);
    		if(id==null || id<=0){
    			renderText("数据异常");
    			return;
    		}
    		Boolean flag = Blog.me.deleteById(id);
    		if(!flag){
    			renderText("数据已删除");
    			return;
    		}
    		index();
    	}
    	public void update(){
    		String dosubmit = getPara("dosbumit");
    		if(dosubmit==null || dosubmit.length()<=0){
    			Integer id = getParaToInt(0);
    			if(id==null || id<=0){
    				renderText("数据异常");
    				return;
    			}
    			setAttr("blog", Blog.me.findById(id));
    			render("update.jsp");
    		}else{
    			Blog blog = getModel(Blog.class,"blog");
    			blog.update();
    			index();
    		}
    	}
    }
    

    6、模型

    package com.demo.common.model;
    
    import com.jfinal.plugin.activerecord.Model;
    
    public class Blog extends Model<Blog> {
    	public final static Blog me = new Blog();
    }
    

    7、视图

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>博客列表</title>
        <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">  
    	<script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    	<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	
      </head>
      
      <body>
        <table class="table table-striped table-bordered">
    	<caption><a href="/blog/add" class="btn btn-primary">添加博客</a></caption>
    	<thead>
    		<tr>
    			<th>ID</th>
    			<th>标题</th>
    			<th>内容</th>
    			<th>时间</th>
    			<th>操作</th>
    		</tr>
    	</thead>
    	<tbody>
    		<c:forEach items="${blogs }" var="b">
    		<tr>
    			<td>${b.id }</td>
    			<td>${b.title }</td>
    			<td>${b.content }</td>
    			<td>${b.time }</td>
    			<td>
    			<a class="btn btn-primary" href="/blog/del/${b.id }">删除</a>
    			|
    			<a class="btn btn-danger" href="/blog/update/${b.id }">编辑</a>
    			</td>
    		</tr>
    		</c:forEach>
    	</tbody>
    </table>
      </body>
    </html>

    代码:

    下载

  • 相关阅读:
    微信开发者工具http申请图片变成https
    vue 中v-for img src 路径加载问题
    nodejs内置模块querystring中parse使用问题
    用git上传项目到github遇到的问题和解决方法
    页面刷新——微信小程序生命周期探索
    小程序项目复盘(三) 用全局变量传参的问题
    小程序项目复盘(二) wx.request异步请求处理
    小程序项目复盘(一)字符串处理问题
    微信小程序中我常用到的CSS3弹性盒子布局(flex)总结
    wx.request中POST方法传参问题,用到JSON.stringify()
  • 原文地址:https://www.cnblogs.com/mracale/p/7902655.html
Copyright © 2020-2023  润新知