开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
fw4j首页、文档和下载 - mvc框架 - 开源中国社区
全部项目分类
我要评价
Apache
Java
跨平台
独特程序
分享
收藏
4 人收藏
收录时间:2013-12-30
fw4j 详细介绍

一个使用servlet+反射实现的mvc框架与使用asm实现的数据库操作层框架

该框架目前处于开发阶段,框架实现方法简单,肯定存在不足之处希望以后可以继续完善

已经实现的功能有:

  1. Controller控制层

  2. 请求转发

  3. 页面重定向

  4. 数据库的基本操作

  5. 通过注解获得cookie中的值
  6. 通过注解获得request中的参数值
  7. 添加了一个简单的数据库连接池

没有实现的功能:

    数据库的存储过程调用、表关联

使用实例:

控制层代码

 package com.demo.controller;

import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.demo.dao.UserDao;
import com.demo.entity.UserEntity;
import com.fw4j.jdbc.factory.DaoFactory;
import com.fw4j.jdbc.factory.EntityFactory;
import com.fw4j.web.annotation.Controller;
import com.fw4j.web.annotation.Parameter;
import com.fw4j.web.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class DemoController {

	@RequestMapping("/index")
        @Action(type=Type.REQUEST,result="/view/index.jsp")
        public int doGet(){
		return 0;
	}
    
       @RequestMapping("/list")
       @Action(type=Type.TOJSON)
       public Object list(){
            List<Object> objectlist = new ArrayList<Object>();
            Map<String,Object> valMap = new HashMap<String,Object>();
            valMap.put("222", "222");
            valMap.put("123", "123");
            objectlist.add(valMap);
            objectlist.add(valMap);
            return objectlist;
        }

        @RequestMapping(value="/add",method=Method.POST)
	public String add(@Parameter({"name","pwd"}) String name, String pwd) throws Exception{
		
//        DaoFactory.transaction(new TransactionCallback() {    
//            @Override
//            public void invoke() throws SQLException {
//                UserEntity ue = null;
//                try {
//                    ue = EntityFactory.getInstance(UserEntity.class);
//                    ue.setName(name);
//                    ue.setPwd(pwd);
//                    ue.setLoginTime(new Date());
//                    DaoFactory.getSynConnectInstance(UserDao.class).saveOrUpdate(ue);
//                } catch (InstanceException e) {
//                    e.printStackTrace();
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
//        });             
                UserEntity ue = EntityFactory.getInstance(UserEntity.class);
		ue.setName(name);
		ue.setPwd(pwd);
		ue.setLoginTime(new Date());
		DaoFactory.getInstance(UserDao.class).saveOrUpdate(ue);
		return "redirect:/show";
	}          
        @RequestMapping("/show")
	public String show(OutParameter oparam) throws Exception{
		Listuel = (List)DaoFactory.getInstance(UserDao.class).getAll();
		oparam.put("users", uel);
		return "/view/show.jsp";
	}
}

实体层:

package com.demo.entity;

import java.util.Date;

import com.fw4j.jdbc.annotation.Column;
import com.fw4j.jdbc.annotation.Entity;
import com.fw4j.jdbc.annotation.Key;
import com.fw4j.jdbc.annotation.Table;

@Entity
@Table("users")
public interface UserEntity {
	
	@Key
	@Column(value="id",type=Column.INTEGER)
	void setId(int id);
	int getId();
	
	@Column(value="name",type=Column.STRING)
	void setName(String name);
	String getName();
	
	@Column(value="pwd",type=Column.STRING)
	void setPwd(String pwd);
	String getPwd();
	
	@Column(value="loginTime",type=Column.DATE)
	void setLoginTime(Date lt);
	Date getLoginTime();
}

数据库操作层:

package com.demo.dao;

import java.util.List;

import com.demo.entity.UserEntity;
import com.fw4j.jdbc.annotation.Dao;
import com.fw4j.jdbc.annotation.Query;
import com.fw4j.jdbc.annotation.Where;
import com.fw4j.jdbc.dao.BaseDao;

@Dao(UserEntity.class)
public interface UserDao extends BaseDao {
	
	@Query("select * from users")
	@Where("name = ? and pwd = ?")
	ListfindByNameAndPwd(String name,String pwd);
}

配置文件:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet-mapping>
  <servlet-name>fw4j</servlet-name>
  <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>fw4j</servlet-name>
  <servlet-class>com.fw4j.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
  </servlet>
 
</web-app>

fw4j的独立配置文件

<?xml version="1.0" encoding="UTF-8"?>
<fw4j>
  <Controller value="com.demo.controller">
      <encoding>utf-8</encoding>
  	  <view>/WEB-INF/view/</view>
  </Controller>
  <JDBC pool="true">
      <pool database="mysql">
          <url>jdbc:mysql://localhost/webauth</url>
          <driver>com.mysql.jdbc.Driver</driver>
          <user>root</user>
          <pwd>123</pwd>
          <outOfData>10000</outOfData>
      </pool>
      <pool database="default">
          <url>jdbc:h2:tcp://127.0.0.1:9094/~/test</url>
          <driver>org.h2.Driver</driver>
          <user>sa</user>
          <pwd></pwd>
      </pool>
  </JDBC>
</fw4j>





fw4j

选择将代码托管在码云
你还在等什么

可能是中国最大最好的代码托管平台


大家对 fw4j 的评论 (全部 0 条评论)
{{repayCom.userName}}
fw4j 相关博客
顶部