当前位置: 首页 > news >正文

网站地图生成器下载百度安装

网站地图生成器,下载百度安装,红蝶直播,广州哪家做网站还可以前端传入Grule,后端保存到 .grl 文件中 通过简单的输入框,将Grule的部分拆解成 规则名称 规则描述 规则优先级 规则条件 规则逻辑Grule关键字 when Then 模拟了 if 判断的条件和逻辑部分 类似于 shell 和 ruby 之类的脚本语言,有 then 关键字…

前端传入Grule,后端保存到 .grl 文件中

  • 通过简单的输入框,将Grule的部分拆解成 规则名称 规则描述 规则优先级 规则条件 规则逻辑
  • Grule关键字 when Then 模拟了 if 判断的条件和逻辑部分
    • 类似于 shellruby 之类的脚本语言,有 then 关键字
    • when&& 相当于多个条件的 操作
    • Then 之后为脚本逻辑语句, 所以后面要加 ; 分号结束

前端编写

  • 前端模板: templates/grule.tmpl , 可以让用户输入Grule
    • 表单用 POST 往源服务器的 /grule/form/ 发送表单
    • 其中 规则条件规则逻辑 有增加按钮
      • 使用dom树获取点击事件
      • 点击时增加表单输入框
<html>
<p>请编写你的Grule规则</p>
<form name="grule" method="POST" action="/grule/form/">规则名称: <input name="ruleName"></input><br/>规则描述: <input name="ruleDesc"></input><br/>规则优先级: <input name="ruleSalience"></input><br/><div>规则条件: <input name="ruleCondition"></input><button type="button" id="addRuleCondition">增加</button></div><div>规则逻辑: <input name="ruleLogic"></input><button type="button" id="addRuleLogic">增加</button></div><button type="submit">确认</button>
</form>
<script>
// 增加按钮的逻辑
var addRuleConditionButton = document.getElementById('addRuleCondition');
var addRuleLogicButton = document.getElementById('addRuleLogic');
var ruleConditionContainer = addRuleConditionButton.parentNode;
var ruleLogicContainer = addRuleLogicButton.parentNode;addRuleConditionButton.addEventListener('click', function() {var newInput = document.createElement('input');newInput.name = 'ruleCondition';newInput.type = 'text';ruleConditionContainer.insertBefore(newInput, addRuleConditionButton);
});addRuleLogicButton.addEventListener('click', function() {var newInput = document.createElement('input');newInput.name = 'ruleLogic';newInput.type = 'text';ruleLogicContainer.insertBefore(newInput, addRuleLogicButton);
});
</script>
</html>
  • 表单分别将 Grule 拆解成了下面几个输入框
    • 提交表单后 c.Redirect(http.StatusFound, "/grule/form/") 会重定向回该页面
      在这里插入图片描述

后端部分

  • 设置跳转到 grule.tmpl 的接口
r.GET("/index", func(c *gin.Context) {c.HTML(http.StatusOK, "index.tmpl", gin.H{})
})
  • 设置接受Grule表单的接口
    • 使用 c.ShouldBind(&form) 绑定表单到 RuleForm 结构体上
      • 结构体tag form:"ruleName" 对应表单 inputname 属性
      • RuleConditions 切片类型字段, 对应表单都为 ruleCondition 的多个input
    • 接口使用 fmt.Sprintf() 格式化Grule字符串
    • 接口使用文件操作将字符串保存到 grule/规则名.grl
    • 使用 c.Redirect() 重定向会表单页面
// 接收表单的结构体
type RuleForm struct {RuleName       string   `form:"ruleName"`RuleDesc       string   `form:"ruleDesc"`RuleSalience   string   `form:"ruleSalience"`RuleConditions []string `form:"ruleCondition"`RuleLogic      []string `form:"ruleLogic"`
}func main() {r.POST("/grule/form/", func(c *gin.Context) {var form RuleFormc.ShouldBind(&form) // 绑定表单// 格式化字符串grule := fmt.Sprintf(`
rule %s "%s" salience %s {when%sThen%s;
}`, form.RuleName, form.RuleDesc, form.RuleSalience, strings.Join(form.RuleConditions, " && "), strings.Join(form.RuleLogic, ";\n\t\t"))Ω// 将grule字符串写入文件err := ioutil.WriteFile(fmt.Sprintf("grule/%s.grl", form.RuleName), []byte(grule), 0644)if err != nil {log.Println(err)}// 重定向c.Redirect(http.StatusFound, "/grule/form/")})
}

演示

在这里插入图片描述
在这里插入图片描述

http://www.dinnco.com/news/79242.html

相关文章:

  • 银川怎么做网站百度答主招募入口官网
  • 房产网有哪些网站现代营销手段有哪些
  • 个人怎么建设网站营销推广公司案例
  • 做网站cpaseo推广技巧
  • 苏州网站建设免费自媒体营销的策略和方法
  • 连云港建设局网站哪个推广平台推广最靠谱
  • 网站中有一个非常著名的原则网站建站设计
  • 阜宁专业做网站的公司现在广告行业好做吗
  • 营销型网站制作的目的是企业中层管理人员培训课程
  • wordpress插件 osgi北京seo工程师
  • 通州区网站制作如何制作一个网页网站
  • 网站流量是什么网站优化关键词
  • 花钱做网站不给源码人际网络营销2900
  • 网站备案归怎么创建自己的网站平台
  • 山西做网站运营的公司西安网站seo推广
  • 阿里云对象存储做静态网站微信营销和微博营销的本质区别
  • 网站做跳转对排名有影响吗产品推广方式都有哪些
  • 怎么建设网站规划长沙企业关键词优化哪家好
  • 兴化网站建设成都最好的seo外包
  • 视频制作软件大全免费版商丘seo教程
  • 惠州网站建设多少钱自己有域名怎么建网站
  • 如何做企业网站排名优化seo咨询岳阳
  • 河南营销型网站建设刷关键词的平台
  • 网站桥页也叫站长工具官网域名查询
  • dw做动态网页教程东莞网络优化排名
  • 做网站模板和服务器是一样的吗属于seo网站优化
  • 做软件界面的网站最近国际新闻
  • 网站活动策划方案sem优化推广
  • 该怎么跟程序员谈做网站旺道seo推广系统怎么收费
  • 在深圳做网站多少钱2022百度搜索风云榜