HoyiWeb 之入门指南
2015-11-17 15:03
501 查看
Hoyi是一套开发框架,包含Hoyi ER Tool;Hoyi Entities[.net、java];Hoyi web[java版]。主要应用于App开发,为App的前后端接口、后台管理程序提供了一套解决方案。这里的教程主要介绍如何使用HoyiWeb[java版]开发java
web项目。如需了解更多可以到http://www.hoyi.org上查看资料,如你有新的看法或者贡献自己的代码,欢迎可以加群讨论。
一、新建项目及配置
1.新建Dynamic Web Project项目
如图:HoyiWeb支持Tomcat
7.0以上
2.在src目录下新建配置文件config
数据库连接配置:jdbc.properties
配置如下:
<span style="font-family:SimSun;">jdbc_driverClassName=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://IP及端口/数据库名称?useUnicode=true&characterEncoding=utf-8 jdbc_username=数据库用户名 jdbc_password=数据库密码</span>
hoyi配置文件:hoyi.properties
配置如下:
<span style="font-family:SimSun;">OpenDebug=true //打开Debug日志输出 OpenError=true //打开错误日志输出 OpenLog=true //日志输出 ConnectionCount=10 //数据库连接数 CreateConnectionPooLCount=10 //连接池</span>
3./WebContent/WEB-INF/lib 导入依赖jar (下载地址:http://www.hoyi.org/download.htm)
<span style="font-family:SimSun;font-size:12px;">json-lib-2.4-jdk15.jar log4j-1.2.12.jar mysql-connector-java-5.1.25-bin.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.7.jar validation-api-1.1.0.Final.jar xstream-1.4.7.jar hoyi-web-3.0.jar hoyi-entities-3.0.jar</span>
4.WebContent/ 下新建web.xml
配置内容:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"> <display-name>carmayor-web</display-name> <servlet> <description>runner dispatcher</description> <display-name>runner dispatcher</display-name> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.hoyi.dispatchs.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.hoyip</url-pattern> //此处配置为DispatchServlet拦截src目录下的 .hoyip文件 </servlet-mapping> <listener> <listener-class>org.hoyi.sessionlisten.SessionListenerCtrls</listener-class> </listener> <session-config> <session-timeout>30</session-timeout> //session连接超时时间 </session-config> <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> </web-app>5.在src目录下新建WebRoot目录,用于存放html页面及接口文件
由于DispatcherServlet会拦截src目录下*.hoyip文件,所以Js、图片等文件都放在WebContent目录下;html文件放在WebRoot目录下。
二、HoyiWeb使用前Hoyi ER Tool 及Hoyi Entities学习
利用Hoyi ER Tool 工具新建数据库及生成Entities 大家可以参考视频,表述更清楚 http://pan.baidu.com/s/1c0HP0is
生成实体类后将文件放入src/model/目录下
三、HoyiWeb使用
<pre name="code" class="java">@RequestMode(MODE = { RequestType.GET, RequestType.POST }) public class index extends Hoyipage { Repeater rep_user = new Repeater("rep_user", pageroot); @Override public void OnPreInit() throws IOException { // TODO Auto-generated method stub if (Behaviored) { return; } setUserSource(); super.OnPreInit(); } /** 获取用户类型*/ @RequestMode(MODE = { RequestType.POST }) public String getUsertype(String usertype) { switch (usertype) { case "0": return ""; case "1": return ""; default: return ""; } } /** 绑定数据源 */ @RequestMode(MODE = { RequestType.POST }) public void setUserSource() { rep_user.DataCount = user.E().Count(); rep_user.PageIndex = this.getpgindex(); rep_user.PageSize = 10; rep_user.EntitySource = user.E().Select(); //绑定Entities数据源 // rep_user.TableSource = user.E().SelectDT(); //绑定DataTable数据源 } @RequestMode(MODE = {RequestType.POST}) pubic void getUser() { this.WriteUTF8JSONDATAMSG(StatusCode.STATUS_SUCCESS,"你好",""); } }
1.app端接口
类和方法都要加入请求方法限制
<span style="font-size:14px;">@RequestMode(MODE = { RequestType.GET, RequestType.POST })</span>
如果未添加此限制,抛出错误状态码-503 请求类型错误
app可以通过此接口获取数据,如需要进行浏览器访问,类和方法加上RequestType.GET即可进行访问
访问地址规则如下:
上面接口访问地址:http://192.168.1.1:8080/HoyiDemo/AppInterface/UserCenterDemo.hoyip?behavior=getUserInfo
1.类名后面要加上.hoyip及路径要对,否则回到报-996
Can‘t find hoyipage
2.要加入一个参数 "behavior" 对应的值是 “方法名”
上面内容涉及到hoyi语法,如果之前未了解Hoyi语法,请先到http://www.hoyi.org学习
2.后台web端页面
Java类 类似于app接口java内容,只是在类里面加入OnPreInit()方法,此方法可不加上请求方法限制
index.java方法分为两种
无返回值 web页面post到后台调用方法
有返回值
web页面直接对应使用方法
首先看html页面
包含HoyiWeb标签内容 {# username #} <%# getU[b]sertype() %> <%# getUsertype({# usertype #}) %>[/b]
html页面方法书写要求:
{# username #} 数据库字段对应内容 格式如右边:{# 数据库字段 #} 中间只允许一个空格,不可换行
<%# getUsertype() %> 此方法格式同上,不同的是会调用java对应的方法,此方法有返回值
此方法也可以传参数如<%# getUsertype({#[b]usertype #}) %> 方法有返回值,也可以多个参数,但是参数值不能为null,否则报 错 Can‘t
find the Method[/b]
对应java内容为
/** 获取用户类型 */ @RequestMode(MODE = { RequestType.POST }) public String getUsertype(String usertype) { switch (usertype) { case "0": return ""; case "1": return ""; default: return ""; } }
以上是在html显示简单内容,接下来介绍一个元素
数据循环生成html------------》Repeater
<hoyip:Repeater></hoyip:Repeater>用于循环生成数据
<table class="table table-border" id="repcity_parent"> <hoyip:Repeater id="rep_user"> <HeaderTemplate> <thead> <tr> <th>用户名称</th> <th>用户类型</th> </tr> </thead> </HeaderTemplate> <tbody> <ItemTemplate> <tr id="tr{# usercenterid #}"> <td>{# username #}</td> <td><%# getUsertype({# usertype #}) %></td> </tr> </ItemTemplate> </tbody> </hoyip:Repeater> </table>
repeater需要在html table设置一个ID rep_user 并且在java中实例化Repeater对象
Repeater rep_user = new Repeater("rep_user", pageroot);
在java文件中要绑定数据源,代码如下
/** 绑定数据源 */ @RequestMode(MODE = { RequestType.POST }) public void setUserSource() { rep_user.DataCount = user.E().Count(); //数据量 rep_user.PageIndex = this.getpgindex(); //分页 rep_user.PageSize = 10; //每页数量 rep_user.EntitySource = user.E().Select(); //实体数据源 // rep_user.TableSource = user.E().SelectDT(); //DataTabel数据源 //此处也可以用sql语句进行多表的内容联查,但是要将tbody 的id删除
在OnPreInit()方法中加入setUserSource()
@Override public void OnPreInit() throws IOException { // TODO Auto-generated method stub if (Behaviored) { return; } setUserSource(); super.OnPreInit(); }
Repeater 便可以使用
如何从Html发post到后台,方法也很简单,在js中加入
function pgc(index) { curindex = index; var pdata = { "behavior":"GetUser", }; HOYI_POST(pdata, function(data, status){ alert(data); }); }
上面的代码,其中<a onclick="pgc({# usercenterid #})"></a> 方法需要引入HOYI_POST方法
需要导入js文件下载地址
</pre><p></p><p><span style="font-size:14px;">html页面需要引入</span></p><p></p><pre name="code" class="html"><script src="../../../js/jquery/jquery-2.1.3.js"></script> <script src="../../../js/jquery-validate/jquery.validate.js"></script> <script src="../../../js/hoyi/jquery.upload.v2.js"></script> <script src="../../../js/hoyi/hoyi-jq.js"></script> <script src="../../../js/hoyi/hoyi-req.js"></script>
behavior 方法对应java文件中得GetUser
@RequestMode(MODE = {RequestType.POST}) pubic void getUser() { this.WriteUTF8JSONDATAMSG(StatusCode.STATUS_SUCCESS,"你好",""); }
以上就是HoyiWeb 内容,通过简单的对方法进行规定对应,免去配置等麻烦,目前Hoyi已有页面代码生成工具,可以在短时时间内完成大量工作,如果你发现里面有错误,麻烦请您指正,如果您觉得有可以改进的地方,欢迎您加入这个项目开发,谢谢,开源地址请查看http://www.hoyi.org
相关文章推荐
- C#.NET获取拨号连接的宽带连接方法
- C#.Net ArrayList的使用方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- .net(c#)中的new关键字详细介绍
- 由vbs sort引发.NET Framework之间的关系说明
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- .NET中的async和await关键字使用及Task异步调用实例
- .Net中的json操作类用法分析
- .net实现序列化与反序列化实例解析
- .NET中的Timer类型用法详解
- 关于.net(C#)中的跨进程访问的问题
- .NET实现父窗体关闭而不影响子窗体的方法
- 基于.Net中的数字与日期格式化规则助记词的使用详解
- .NET微信公众号开发之公众号消息处理
- .Net下的签名与混淆图文分析
- .NET 扩展实现代码
- .NET实现定时发送邮件代码(两种方式)
- .net实现文件读写的几种常用方法
- .net文件上传时实现通过文件头确认文件类型的方法
- 四个常用的.NET的SQLHELPER方法实例