您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息