littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Kotlin的Layui后台界面生成系统

项目简介

本项目是基于Kotlin语言的Layui后台界面生成系统,可帮助开发者快速生成基本的表单和表格界面。它利用Layui的控件搭建界面框架,常用控件完备,也能通过HTML自定义实现或扩展控件库来处理非常用控件。

项目的主要特性和功能

  1. 丰富的控件生成:支持生成文本框、下拉框、自动完成、复选框、日期选择器、单选框、图片上传、文件上传、表格、分页等常用控件。
  2. 多样的按钮功能:具备Ajax执行请求、对话框、Ajax表单提交、带确认的Ajax执行请求等按钮功能。
  3. 实用的页面功能:提供主页和登录页等页面功能。
  4. 动态内容生成:支持自定义模板和动态数据填充,可根据字符串数组、枚举类型、URL地址、Spring BeanClass数据等多种数据源类型动态加载数据。
  5. 表单验证支持:支持必填校验、电话号码格式校验、电子邮件格式校验、网址格式校验、数字格式校验、正则表达式校验等表单验证。

安装使用步骤

引入依赖

若项目是Spring Boot,可直接引用,项目采用Spring boot start。 ```xml jitpack.io https://jitpack.io

spring_xuejike_tpl 0.1.1 ```

引入Kotlin库和插件

```gradle apply plugin: 'kotlin'

buildscript { ext.kotlin_version = '1.2.10'

repositories {
    mavenCentral()
}
dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

}

repositories {
maven { url "https://jcenter.bintray.com" } }

dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" compile "org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.6" } ```

使用模板生成器

生成首页

java @RequestMapping("/index") @ResponseBody public String index(){ AdminJkKtView testView = new AdminJkKtView(); testView.getInfo().setTitle("极速模板"); testView.getInfo().setIndexUrl("/index"); testView.getInfo().setLeft("/left"); testView.getInfo().setTop("/top"); testView.getInfo().getRightMenu() .add(new JkMenu("修改密码","","http://www.baidu.com")); testView.getInfo().setWelcomeUrl("/welcome"); testView.getInfo().setLogoutUrl("/public/logout"); testView.getInfo().setUsername("超级管理员"); return testView.toHtml(); }

生成表单页

java @RequestMapping("/form") @ResponseBody public String form(){ TestFormView view = new TestFormView(); view.setVo(new TestModel()); return view.toHtml(); } ```kotlin class TestFormView: PageJkKtView() { var vo:TestModel?=null;

override fun content(): String {
    return createHTML().div {
        vo=TestModel("ss")
        jkForm {
            jkInput(bind = vo!!::username,title = "文本框", type = InputType.text,inputCall =
            {
                it.attributes["lay-verify"]="required|number"
            })
            jkFormTitle(){
                jkButton("提交",type = JkButtonType.ajax_submit)
            }
        }
    }
}

} ```

生成登录页

java public String login(){ AdminLoginKtView adminLoginKtView = new AdminLoginKtView(); adminLoginKtView.getInfo().setActionUrl("/public/login"); adminLoginKtView.getInfo().setTitle("登录页"); adminLoginKtView.getInfo().setUserName("用户名"); adminLoginKtView.getInfo().setPwd("密码"); adminLoginKtView.getInfo().setMsg("登录失败的错误消息"); return adminLoginKtView.toHtml(); }

在当前页面引入css、js文件

kotlin override fun content(): String { headList.add("<meta name=\"viewport\" content=\"width=device-width\">") footerList.add("<script></script>") addCssFile("/test.css") addHeadJsFile("/head.js") addFooterJsFile("/foot.js") return createHTML().div { vo= TestModel("ss") jkForm { jkInput(bind = vo!!::username,title = "文本框", type = InputType.text,inputCall = { it.attributes["lay-verify"]="required|number" }) jkFormTitle(){ jkButton("提交",type = JkButtonType.ajax_submit) } } } }

在公共页面引入通用的CSS、JS、头部、尾部

```kotlin import vip.xuejike.ktpl.libs.commonFooter import vip.xuejike.ktpl.libs.commonHeader

fun loadTpl(){ commonHeader.add("ss") commonFooter.add("ff") }

var t=loadTpl() ```

使用Spring MVC的MessageConverters自动转换

Spring Boot 的MessageConverters的配置 ```java @Configuration public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

}

List<JkHandlerInterceptor> jkHandlerInterceptorList;
@Override
public void addInterceptors(InterceptorRegistry registry) {
}

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(0,new JkKtViewMessageConverters());
    super.configureMessageConverters(converters);
}

} 直接使用java @RequestMapping("/form") @ResponseBody public String form(){ TestFormView view = new TestFormView(); view.setVo(new TestModel()); return view; } ```

注意事项

  • 需熟悉Kotlin语言以及Layui框架的基本使用。
  • 要理解项目中定义的注解和类(如JkButtonJkFormJkTable等)及其属性和用法。
  • 根据项目实际需求,自定义和扩展控件库以及数据源处理逻辑。
  • 正确配置Spring MVC的MessageConverters,以支持JkKtView类型的消息转换。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】