JSPGenSDF基础配置

JSPGenSDF软件开发框架(于2014年5月5号发布4.0版),简称JSPGen,专用Java Web方面平台式软件开发,整个框架也可以说是前台与后台的一个粘合剂,现在对JSPGenSDF进行开发配置,看看最基础的配置和最基本的使用方法。

JSPGenSDF学习成本不高,采用的都是Java原生态编码方式,按照官方说法:稍有Java基础知识均可做开发,这也是我打算整理此教程的根本原因(题外话:此次版本与之前版本区别很大,网上资料很少,官方资料又太过专业,希望此教程能帮助大家更好、更快熟悉这个开发框架)。

本次demo工程是一个官网提供的示例项目工程,开发方面我们采用官网提供的Eclipse3.7中文版进行Java开发以及项目管理。

一、准备工作

1、下载项目运行环境:WATMServer2.6

2、下载项目运行(开发)时所需第三方jar组件包:Jar20140505

3、下载开发环境(工具):Eclipse3.7

4、获取JSPGen示例项目:

有两种获取方式:

a、到官网在线预定,选免费型(建议选这种方式,获取都是最新版本);

b、加入官网提供的QQ交流群:12349848,在群共享里下载。

环境下载地址:http://www.jspgen.com/html/node/NodeX6.html

示例项目获取:http://www.jspgen.com/CMS/Node.gen?Id=8

二、环境安装及项目导入

视频教程下载:http://help.jspgen.com/vteach/jspgen4_01.rar

三、项目配置

A、项目结构

B、配置文件

1、jspgen-config.xml

框架所构建的平台基本信息配置:

<?xml version="1.0" encoding="UTF-8"?>
<jspgen version="4.0">
    <!-- 平台主题、地址 -->
    <host>
       <title>JSPGen-让Java(Web)软件开发变得更敏捷! www.JSPGen.com</title>
       <!-- 多个半角逗号间隔 -->
       <url>http://127.0.0.1:8080/</url>
    </host>

    <!-- 开发者信息 -->
    <company>JSPGen.com</company>
    <url>http://www.jspgen.com/</url>
    <email>[email protected]</email>

    <!-- 时区Id(为空则为系统默认时区) -->
    <timezoneid>Asia/Shanghai</timezoneid>

    <!-- 区域语言环境(为空则为系统默认区域) -->
    <locale>zh_CN</locale>

    <!-- 页面编码 -->
    <charset>UTF-8</charset>

    <!-- 平台授权码 -->
    <serialno></serialno>

    <!-- 开启IE缓存 -->
    <iecache>true</iecache>

    <!-- 静态资源 -->
    <static>
       <!-- 访问地址(若静态生成配置中有发布点的,以发布点访问地址为准) -->
       <url></url>
       <!-- 存储地址:相对于平台根目录下 -->
       <uri>static/</uri>
    </static>

    <!-- 上传文件 -->
    <upload status="true">
       <!-- 访问地址(若上传配置中有发布点的,以发布点访问地址为准) -->
       <url></url>
       <!-- 临时存储地址:相对于项目根目录下 -->
       <uri>temp/upload/</uri>
       <!-- 允许大小:默认值1M -->
       <size>1M</size>
    </upload>

    <!-- 下载文件 -->
    <download status="false">
       <!-- 存储地址:相对于项目根目录下 -->
       <uri>temp/download/</uri>
    </download>

    <!-- 安全 -->
    <safe>
       <!-- 平台密钥 (为cookie 伪静态 … 加密服务防cookie欺骗) -->
       <authkey>JSPGen</authkey>
       <!--
           允许访问IP范围 (支持格式127.0.0.1 127.0.0.* 127.0.0.0-127.0.0.10 多个用半角逗号间隔)
       -->
       <allowip></allowip>
       <!--
           禁止访问IP范围 (支持格式127.0.0.1 127.0.0.* 127.0.0.0-127.0.0.10 多个用半角逗号间隔)
       -->
       <denyip></denyip>
    </safe>

    <!-- 邮件服务 -->
    <mail status="true">
       <smtp>
           <!-- 发送类型(SMTP MX) -->
           <type>SMTP</type>
           <server>smtp.163.com</server>
           <port>25</port>
           <email>[email protected]</email>
           <name>JSPGen官网</name>
           <username>jspgen</username>
           <password>jspgen</password>
           <!-- 内容格式(text html url) -->
           <format>html</format>
           <!-- 内容签名 -->
           <sign>JSPGen-让Java(Web)软件开发变得更敏捷! www.JSPGen.com</sign>
       </smtp>
    </mail>
</jspgen>

2、jspgen-action.xml

业务动作配置,为后台业务与前台显示视图进行配对服务,这里需要注意仅定义Action所在包的地址,而非具体Action文件地:

<?xml version="1.0" encoding="UTF-8"?>
<jspgen version="4.0">
    <!-- 初始化参数 -->
    <props name="action">
       <!-- 开启开发模式,开启后将错误信息直接输出至浏览器,否则将信息记录至日志文件 -->
       <prop name="jspgen.devMode">true</prop>
       <prop name="jspgen.antiAttack">false</prop>
       <!-- 开启表单指令验证 -->
       <prop name="jspgen.formHash">false</prop>
       <!-- 可忽略表单指令验证地址 -->
       <prop name="jspgen.formHash.invalidURI"></prop>
       <!-- Action访问地址扩展名 -->
       <prop name="jspgen.action.extension">gen</prop>
       <!-- Action名与方法名间隔符 -->
       <prop name="jspgen.action.separator">!</prop>
       <!-- Action返回关键字模板文件存放路径,相对于框架根目录下 -->
       <prop name="jspgen.result.uri">/WEB-INF/template/</prop>
       <!-- 模板路径自适应,不启用的情况下:若关键字不存在,显示未定义返回关键字 -->
       <!-- 启用情况下(只在应用区模板下有用):在应用区、框架区都没有定义返回关键字的情况下,则自动组装模板路径(可由组装变量自动匹配,即可实现Action零配置开发) -->

       <!-- 组装变量:${space}、${action}、${method}、${result},分别为:空间名(模板目录)、Action名、方法名、返回关键字;Action名为Action类文件名前缀,开头字母小写,其余大写字母转小写并在开头添加下划线。 -->

       <prop name="jspgen.template.auto">true</prop>
       <!-- <prop name="jspgen.template.default">${space}/${action}_${method}_${result}.jsp</prop> -->
       <prop name="jspgen.template.default">${space}/${action}_${result}.jsp</prop>
    </props>

    <!-- 返回配对:公共关键字 -->
    <results>
       <!--
           公共关键字:默认有none error success ajax[message],其中none无需定义,优先级最高用于内容直接输出,其他关键字低于模板自适应及私有关键字配对;
           公共关键字:模板文件均位于框架模板目录下(默认方案)。
       -->
       <result name="error">error.jsp</result>
       <result name="success">success.jsp</result>
    </results>

    <!-- 动作配对  -->
    <actions>
       <!-- Action定义:space(空间名)为访问路径前缀,type(类型)为Action所在包地址,若开头有 "redirect:" 特殊字符串,则为URL跳转地址,将直接跳转到定义地址 -->
       <action space="/" type="demo.action">
           <!--
              返回配对:返回关键字对应空间所在包内的所有Action,所以模板文件名建议采用组装变量式定义;
              私有关键字:优先级高于公共关键字,支持模板类型:jsp[JSTL] vm[Velocity] ftl[FreeMarker]
           -->
           <result name="demo">demo.jsp</result>
           <result name="mail">demo_mail.jsp</result>
           <result name="upload">demo_upload.jsp</result>
           <result name="list">demo_upload_list.jsp</result>
       </action>
    </actions>
</jspgen>

3、i18n_zh_CN.xml

国际化资源配置,主要用于Java程序中提示语句配置:

<?xml version="1.0" encoding="UTF-8"?>
<i18n version="4.0">
    <!-- 全局 -->
    <props name="global">
       <prop key="access_ip">您的IP地址是:{0}</prop>
       <!-- 基本提示 -->
       <prop key="error">操作失败</prop>
       <prop key="success">操作成功</prop>
       <!-- 上传提示 -->
       <prop key="upload_error">上传失败</prop>
       <prop key="upload_success">上传成功</prop>
    </props>
</i18n>

4、log4j.properties

日志输出配置,仅修改输入文件地址即可:

# DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootLogger=DEBUG,console,rollingFile
# -----------------------------------------------------------------------------------------
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.encoding=UTF-8
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p [%t] (%F:%L) - %m%n
# -----------------------------------------------------------------------------------------
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=E:/web/log.log
log4j.appender.rollingFile.MaxFileSize=500KB
log4j.appender.rollingFile.Threshold=INFO
log4j.appender.rollingFile.encoding=UTF-8
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} [%-5p] (%F:%L) - %m%n

5、jspgen-parse.xml

视图(模板)解析配置,一般情况下不需要修改,保持默认即可:

<?xml version="1.0" encoding="UTF-8"?>
<jspgen version="4.0">
    <!-- 初始化参数 -->
    <props name="parse">
       <!-- JSTL 参数 -->
       <prop name="jstl.template.import"><![CDATA[
	<%@page trimDirectiveWhitespaces="true"%>
	<%@page import="java.util.*"%>
	<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
	<%@taglib prefix="g" uri="http://api.jspgen.com/taglib/jstl" %>
      ]]></prop>
       <!-- Velocity 参数 -->
       <prop name="velocity.default.encoding">UTF-8</prop>
       <prop name="velocity.input.encoding">UTF-8</prop>
       <prop name="velocity.output.encoding">UTF-8</prop>
       <prop name="velocity.directive.parse.max.depth">5</prop>
       <!-- Freemarker 参数 -->
       <prop name="freemarker.locale">zh_CN</prop>
       <prop name="freemarker.url_escaping_charset">UTF-8</prop>
       <prop name="freemarker.template_update_delay">1</prop>
       <prop name="freemarker.whitespace_stripping">true</prop>
    </props>
    <parse>
       <type name="jsp">jspgen.parse.provider.JSTLProvider</type>
       <type name="vm">jspgen.parse.provider.VelocityProvider</type>
       <type name="ftl">jspgen.parse.provider.FreemarkerProvider</type>
       <!-- 此处工具对于JSTL文件无效,JSTL文件需要在jspgen.tld里定义函数标记方可使用 -->
       <!--tool name="Grapes">grapes.Grapes</tool-->
    </parse>
</jspgen>

C、业务动作处理

1、IndexAction.java

默认视图动作:

package demo.action;

import grapes.Dates;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import jspgen.action.Action;

/**
 * Action类:默认主页
 *
 * @author JSPGen
 * @copyright (c) JSPGen.com
 * @created 2013年03月
 * @email [email protected]
 * @address www.jspgen.com
 */

publicclass IndexAction extends Action {
    /**
     * 默认方法
     */
    @Override
    public String execute() {
       HttpServletResponse response = getResponse();
       try {
           // 直接输出字符串
           response.getWriter().write("<h2>Hello JSPGener!</h2>");
           response.getWriter().write("Time:"+Dates.getDateTime());
       } catch (IOException e) {
           thrownew IllegalArgumentException(e);
       }
       return NONE;
    }
}

2、DemoAction.java

演示动作:

package demo.action;

import grapes.Dates;

import grapes.Files;
import grapes.Grapes;
import grapes.tools.Browser;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import jspgen.action.Action;

/**
 * Action类:演示
 *
 * @author JSPGen
 * @copyright (c) JSPGen.com
 * @created 2013年03月
 * @email [email protected]
 * @address www.jspgen.com
 */
publicclass DemoAction extends Action {

    /**
    Action文件常用方法对象:
     获取用户端请求对象:HttpServletRequest request = getRequest();
     获取服务端响应对象:HttpServletResponse response = getResponse();
     获取用户端IP地址:String ip = Browser.getIP(getRequest());
     获取用户界面表单值:String name = getParameter("name"); // 接收表单值(表单名称:name)
     获取当前系统时间戳:long dateline = Dates.getTimeMillis();

     向用户界面(模板)赋值:setAttribute("属性名称", 属性值); // 属性值可以是对象或具体数值
     向用户界面直接输出:response.getWriter().write("<h2>Hello JSPGener!</h2>这是一个  Action 演示页面…");
     向日志文件输出:logger.info("日志输出:"+ ip);
     */

    /**
     * 创建
     */
    @Override
    protected String create() {

       // 先处理父级方法,再处理本类定义
       String result = super.create();
       if (NONE.equalsIgnoreCase(result) || ERROR.equalsIgnoreCase(result) ) return result;

       // --------------------------

       // 本类定义
       return SUCCESS;
    }

    /**
     * 销毁
     */
    @Override
    protectedvoid destroy() {

       // 本类定义

       // --------------------------
       // 先处理本类定义,再处理父级方法
       super.destroy();
    }

    // -----------------------------------------------------------

    /**
     * 默认方法
     */
    @Override
    public String execute() {
       String ip = Browser.getIP(getRequest());
       String youIp = getMessageValue("global.access_ip", new Object[]{ ip });      // 资源调用

       // 日志输出
       logger.info("日志输出:"+ youIp);

       // 字符串输出
       String str = "<h2>Hello JSPGener!</h2> 这是一个演示Action中的默认方法… " + youIp;
       setAttribute("message", str);

       // 跳转页面(若直接输出,则跳转无用,主要与模板结合使用)
       // this.redirectUrl = "http://www.jspgen.com/";

       return "demo";
    }
}

3、demo.jsp

演示视图(模板)文件:

<%@page trimDirectiveWhitespaces="true"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="g" uri="http://api.jspgen.com/taglib/jstl"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>演示</title>
<link type="text/css" href="${config.staticUrl}ui/prompt.css" rel="stylesheet">
</head>
<body>
<div class="prompt tip info">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr> <td>${message}</td> </tr>
    <tr> <td align="right"><a href="${config.host}">返回首页</a></td> </tr>
  </table>
</div>
</body>
</html>

四、项目发布

A、项目部署至Tomcat

B、进行测试

本文由 JSPGener 提供,作者:西雅

JSPGenSDF基础配置

时间: 2025-01-15 04:20:50

JSPGenSDF基础配置的相关文章

Varnish基础配置实现动静分离web站点

由于一个web站点的程序的访问具有局部性特征:时间上的局部性:一个数据被访问过之后,可能很快会被再次访问到:空间局部性:一个数据被访问时,其周边的数据也有可能被访问到;varnish可将这部分数据缓存下来.缓存的数据存在被访问较频繁的数据可以称其为热区:缓存同样存在局部性:时效性:如果缓存空间耗尽:则采用LRU,最近最少使用算法:将过期的缓存清理掉 varnish的基本工作原理: Varnish通过类似于HTPP反向代理的方式将可以用来缓存的数据缓存下来直接响应给客户端的缓存数据,如果缓存中没有

使用Java管理Azure(1):基础配置

Azure针对Java开发人员提供了非常丰富的依赖库,开发工具,和相关插件,让你通过Java对Azure进行服务管理和开发,本文第一步先介绍如何快速的配置Java开发工具,主要针对目前比较流行的Eclipse和Intellij IDEA工具. 本文主要是基础配置的介绍,主要分为以下三个部分: 准备Azure的测试账号 准备Eclipse的Azure开发环境 准备Intellij IDEA的Azure开发环境 ? 准备Azure测试账号 首先你需要有Azure中国的测试账号.你可以通过Azure.

DDNS基础配置

一.简介 DDNS全名Dynamic Domain Name Server,动态域名解析服务.是由DNS和DHCP服务器组合来提供服务,简单来说就是通过DHCP服务器分配的IP地址可以动态更新到DNS服务上,免除了手动指定的麻烦. 二.平台介绍 软件包都用了centos自带源安装的 centos6.4 x64 dhcp-4.1.1-31.P1.el6.x86_64 bind-9.8.2-0.10.rc1.el6.x86_64 三.服务器端配置过程 1.DNS服务器配置 我在之前的文章中已经写过如

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DNS的基础配置

一.DNS简介 1.DNS:Domain Name System(域名系统),是互联网上IP和域名相互解析的分布式层级结构的数据库.DNS的出现能够使用户更好的更加方便的访问互联网,不用记IP地址来访问互联网,可以通过人类更容易记住域名来访问互联网. 2.DNS是一种C/S架构的服务器,客户机用于一个名字对应的地址,而服务器是为客户机提供查询的,查询由两种机制:迭代查询和递归查询 迭代查询:一般是DNS服务器与DNS服务器之间的查询方式 递归查询:一般是客户机与服务器之间的查询方式 3.DNS是

zabbix 基础配置(四)

zabbix 基础配置(四) ============================================================================ 展示接口: ★graph:simple,custom: ★screen: ★slide show: 演示:   把之前定义的同类型的监控项,放在一屏上  1)设定图像的名称,要显示的监控项,颜色等根据自己的需要设定  2)在监测中,选择图形,查看自己定义的graphs,如下:  2.把所有的图像展现为一屏   1)

zabbix基础配置(二)

zabbix基础配置(二) ============================================================================= 概述: ============================================================================= zabbix agent安装配置:  安装配置过程 1.安装 # yum install zabbix-agent-3.0.2-1.el7.x86_64

H3C 交换机的基础配置

1.reset save    删除以前的配置 2.sysname 配置交换机的名字 3.interface 接口  配置IP地址 4.info-center synchronous       日志同步 5.添加用户与密码(指定类型,级别,认证方式) 6.配置aux vty 6.划分vlan 7.将端口添加到vlan中 8.ip http enable 开户web管理 9.ipmacbind IP地址 Mac地址 端口 vlan      IP.MAC.端口.Vlan的邦定命定 10.ip r

Redhat6.5基础配置指南

Redhat6.5基础配置指南 本文针对鄙人在工作中常用系统配置加以说明,通常公司用于生产和测试的服务器基本上都不能连接外网,需要针对刚刚安装好的系统做一系列的常用配置. 一.常用基础系统配置 1.关闭Selinux 1) 使用root用户,输入命令 vi /etc/selinux/config,修改/etc/selinux/config文件,永久性关闭Selinux 2) 修改文件内容,将SELINUX的参数值更改为disabled,点击i键,进入INSERT模式. 3) 点击ESC键,输入 

DNS服务基础及bind基础配置和应用

DNS服务基础及bind基础配置和应用  DNS服务基础011.DNS:Domain   Name  Service,  ( 应用层协议)2.tld:Top Level Domain 顶级域(1)顶级域中的组织域.com  (company).net    网络组织.org非盈利型组织   org:other  organizations.gov  government.edu    教育机构.mil   military军事的,军队,军人...(2)顶级域中的国家域.tw   .hk  .cn