nutz-jse
version 0.0.2
jdk8 152+ nutz es html
如不使用let const等变量则jdk8 40+即可
如使用es6的部分请更换jdk9 181+
将 config/ioc/jjs.js 中的es6注释 添加到[]内
项目使用说明
将jse.properties文件放置在你的web根目录
复制lib中的jar到 WEB-INFO/lib
启动项目就ok了
代码编写说明
xxx.jjs 对应只有一级的路径 执行结果 >>xxx.html
index.jjs(如没有xxx.jjs则执行index.jjs中的function) 对应只有一级的路径 >>index.html
xxx/aa.jjs 对应 xxx/aa.html
xxx/xxx.jjs 对应 xxx/xxx.html 二级目录可以转数字或uuid 30-128位 并默认填写参数 id = 二级目录名字 二级目录为汉子则填写默认参数 name
xxx/xxx/xxx 对应 xxx/xxx.html 三级目录可以转数字或uuid 30-128位 并默认填写参数 id = 二级目录名字
xxx/xxx/xxx/xxx 对应 xxx/xxx.html 三级目录为参数名 4级为参数值
xxx/ 对应 xxx/index.jjs xxx/index.html
xxx/xxx.json json/xxx/xxx 则直接返回json
xxx/xxx.xml xml/xxx/xxx 则返回xml
raw/xxx/xxx
/captcha/{数字或空} 验证码默认4魏 直接加数字则有位数 session变量 KERBORES_NUTZ_CAPTCHA
微信登录等
具体内容参考 nutz框架
code demo
var courses=$list("course")//dao.query 从数据库中查出的列表 List
//查询过滤出id等于 98与69的
var cs=courses.stream().filter(function(x){
if(x.id==98||x.id==69){
return true;
}else
return false;
}).collect(java.util.stream.Collectors.toList());
//排序 列表以id进行品排序
java.util.Collections.sort(courses, new java.util.Comparator() {
compare:function(h1,h2) {
return h1.id.compareTo(h2.id);
}
});
cache.put("courses",courses) //将对象存储在ehcache obj。
cache.put("xxx","courses",courses)//将对象存储在ehcache xxx。
cache.courses //从缓存中取出courses对象
$save(map) //保存数据库 无id自动添加 支持自增id与uuid
$update(map) //更新 默认id为条件 $update(map,cnd) 加sql条件 支持sql字符串或者Cnd对象
$mager(map)//保存或更新 无id则添加 有则修改 适合后台表单更新等操作 支持update的cnd
toJson(obj)//将对象转json
foJson(str)//将字符串等转对象
attr(key) //从req取出值 attr(key,val) 存值
sattr(key) //从session取出值 sattr(key,val) 存值
$app(key)//从servletContent取出值 $app(key,val) 存值
reqBody //以json等请求时req中时一串文字 用这个对象取出
print(123)//System.err.println(123)
addCookie(name,value) //添加cookie
delCookie //清空cookie
ip //取出ip地址
req //request
resp //response
ioc //ioc对象 get(bean) 取出bean
isEmpty(key) //判断是否空 null "null" "" undefined
log log4j 对象
$list(table,cnd,1,10) 查询列表 除第一个参数都可空
$fetch(table,cnd) 查询单条 cnd可空
$count(table,cnd) 查询条数 cnd可空
$sql(sql,cnd,type) sql语句 其他可空 type默认为List 支持map maps str strs strList int bool
$func(table,func,col) 查询函数
dao ioc中的dao对象
preq中的请求参数 在函数参数列表中传参数等同于
html编写说明
html页面编码为beetl 具体代码写法参考beetl
默认替换
默认变量 root本机当前域名 www为服务器域名 sess.aaa 则取出session中的aaa变量
自动填充req中的变量
自动填写了 dao变量 @dao 可以直接执行sql等操作
${root} 默认项目路径的http地址 http://xx.com/项目名/
html代码中的写法替换注释加:冒号 这样html编写时不会出现黄色的警告号来烦人
确实大于1不会出现的
# demo
xxx.jjs
function edit(tbl){return $fetch("xxx","id=1");}//进入页面函数
function xxx(tbl){$mager(tbl)return ">>:mmm/"}
add.html
```
```
这段代码实现了对一条数据的 查看 新增和修改的所有操作 上传文件 具体参数可以在 xxx函数内 print(tbl) 即可查看表单参数
#配置文件jse.properties 说明
#web
web.www=http://www.zhenping.ltd 真实环境网址
#domain site
web.domain=.zhenping.ltd 真实域名
web.host=www.zhenping.ltd 真实域名
#datasource
db.url=jdbc:mysql://127.0.0.1:3306/zp?useUnicode=true&characterEncoding=utf8&useSSL=false
db.username=root
db.password=chaojimima=123$
db.validationQuery=select 1
db.maxActive=100
db.testWhileIdle=true
db.filters=mergeStat
db.connectionProperties=druid.stat.slowSqlMillis=2000
db.defaultAutoCommit=true
#database mysql 定时自动备份(需quartz开启)
bak.name=db 定时数据库名称
bak.path=c:/sqlbak/ 定时数据库备份文件路径
#mvc filter > class impl ActionFilter 过滤器
mvc.filter=false true则开启过滤
#mvc aop > class extends AbstractProcessor
mvc.aop=false true则开启aop 需继承AbstractProcessor
#mvc class (mvc.filter or mvc.aop) 过滤器实现类
mvc.class=ActionFilter
#quartz pkgs or class 需实现job接口
quartz.enable=false 是否开启定时
#cron.com.jse.job.BakQuartz=0 0 2 * * ? //定时类与定时规则
cron.pkgs=com.jse.job //定时实现包
#email 邮件配置
mail.HostName=smtp.exmail.qq.com
mail.SmtpPort=465
mail.UserName=xxx@xxx.com
mail.Password=xxx
mail.SSLOnConnect=true
mail.From=xxx@xxx.com
#weixin server 微信服务器配置
weixin.token=#
weixin.appid=#
weixin.appsecret=#
#weixin.encodingAesKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#weixin.openid=XXX
#weixin.redis.key=wxmp:access_token
#weixin.atstore=jedis
#weixin open login 微信登录配置
#wxlogin.host=https://xxx.cn
wxlogin.appid=#
wxlogin.appsecret=#
#wxpay 微信支付配置
wxpay.appid=#
wxpay.mch_id=#
wxpay.key=#
wxpay.notify_url=http://xxx.com/pay/wxpay_notify
#alipay 支付宝支付配置
alipay.appid=#
alipay.private_key=#
alipay.public_key=#
alipay.return_url=http://xxx.com/pay/alipay_return
alipay.notify_url=http://xxx.com/pay/alipay_notify
#sms 短信配置 规则 url + 企业账号 企业密码 企业标识串 可以不用sms
#sms.url=#
sms.url=#
sms.id=#
sms.pwd=#
smd.text=#