# springbootcalc
**Repository Path**: AlphF_admin/myspringbootlearn
## Basic Information
- **Project Name**: springbootcalc
- **Description**: 我的springboot 学习,让springboot支持 gsp页面渲染
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-02-25
- **Last Updated**: 2022-08-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
/* 指定本地仓库地址 */
maven { url "file://E:/githubrepo/releases" }
gradle --> maven
在build.gradle中增加以下内容(group,version可自行修改,artifactId默认为目录名称)
apply plugin: 'java'
apply plugin: 'maven'
问题,想着用springboot 里面引入gsp 就可以即简洁又可以使用好用的gsp啦,但是引了个
org.grails:grails-gsp-spring-boot:1.0.0 根本不够 不能解析select标签和set标签
而且
org.grails:grails-gsp-spring-boot:1.0.0 已经带过来很多jar包了
org.grails:grails-spring:2.4.4
org.springframework.boot:spring-boot-cli:1.1.11.RELEASE
org.springframework.boot:spring-boot-autoconfigure:1.5.10.RELEASE
org.grails:grails-web-gsp:2.4.4
org.grails:grails-web-gsp-taglib:2.4.4
如果直接引用grails里面的gsp会咋样呢?
引入gsp的select 包:org.grails:grails-plugin-gsp:2.4.4 也不好使,他们没关联在一起么?
可以查看这个项目https://github.com/grails/grails-boot
感觉这个rabbytes 网站也想把gsp继承到spring中去
http://knowledgebase.rabbytes.com/display/rabbtordoc/GSP+%28+Groovy+Server+Pages+%29+Template+Engine
----------------------------------
都引入了 但是没有启动视图解析器吧
would dispatch back to the current handler URL [/calc] again. Check your ViewResolver setup!
引入视图解析器: mySpringboot.GspConfig tagLibClasses={}里可以写 自定义的taglib类
或者扫包位置:@GspTagLibScan (basePackages={"com.mypackage", "com.otherpackage"})
用formTagLib 总是,时而加载时而不加载,不知道哪出了问题?
无耐只能用父类覆盖,但是还是有很多问题,换个selec便签 从grails复制了n多代码....
DONE 2018年3月6日 09:04:25
---------------------------
引js又出了问题,页面总有几个js加载不进去!
可能是我引包的格式不对:
应该是:
和
类似写js脚本的script一样 type 和前后script标签都要。
2018年3月6日 09:16:30
todo 改成本地引jar再传到git上,本地svn出了问题免得用不了啊
--------------------------------------
为什么同样的样式和js 显示出来的效果会不一样呢? label标签加粗的效果被覆盖了
看grails上导入的css中有个compile=false 难道是这个导致的?
DONE 因为引入css的次序不一样,导致 BootStrap里的样式覆盖了我写的css,
所以自定义的要最后引!!
-----------------------------------------
关于springboot的war包!和热加载
改成war包的形式要修改启动类
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(HelloSpringBoot.class);
}
但是覆盖的标签在tomcat下不太好使,用的是之前的未覆盖的
改成自定义的tagLib试试
但是自定义的不太好使,什么 方法
不太懂:
C:\Users\jiangfeng\.IntelliJIdea2017.2\system\compile-server\myspringbootlearn_81a196d7\groovyStubs\myspringbootlearn_main\java-production\taglib\FormTagLib.java
Error:(97, 84) java: 已在类 taglib.FormTagLib中定义了方法 getTaglibNamespace()
Error:(101, 84) java: 已在类 taglib.FormTagLib中定义了方法 propertyMissing(java.lang.String)
懂啥意思了,groovy和java 编译弄混了,交叉编译了
这是啥意思?? 编译的问题?? 这个包明明定义好了啊
C:\workPlace\myspringbootlearn\src\main\java\mySpringboot\GspConfig.java
Error:(5, 14) java: 程序包taglib不存在
Error:(11, 30) java: 找不到符号
符号: 类 MyFormTagLib
------------------------------------------------
想直接把源码工程引过来,直接使用源码
但是gradle 不会用,没法让他们成为一个工程
Error:(3, 0) Could not find method compile() for arguments [project ':rabbtor-common'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Open File
Cannot infer Groovy class path because no Groovy Jar was found on class path: configuration ':compileClasspath'
突然不让打包了?? 为啥?说是没有groovy的jar包不能编译groovy?
直接把 apply plugin: 'groovy'注释了 就可以啦?
加入了 compile "org.codehaus.groovy:groovy-all:2.4.11" 报的错变了
-----------------------------
不知道怎么折腾一阵子又好了。。。 不报编译的错了,直接把select那个类拿过来也能复用
直接能使用了,就是打包出了问题
--------------------------------------
todo 为什么用jar包直接引入 会报错:
ava.lang.NoClassDefFoundError: org/grails/plugins/web/taglib/RenderTagLib
at com.rabbtor.gsp.config.annotation.WebTagLibraryLookupRegistrar.registerDefaultTagLibClasses(WebTagLibraryLookupRegistrar.groovy:36) ~[rabbtor-web-gsp-1.0.5.BUILD-SNAPSHOT.jar:na]
而用 gradle 本地缓存则可以
ancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class
[mySpringboot.GspConfig]; nested exception is java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
主要还是groovy的问题,可能是直接引用的jar还有各种依赖没有打进去。例如grails 、和groovy的包
DONE
结论:本地直接引入jar很麻烦,因为jar包里面定义了 大量依赖,例如groovy,grails ,这种引入方式却无法加入进去。
// 引入goorvy,要不然放tomcat下没法运行
// compile "org.codehaus.groovy:groovy-all:2.4.13"
// rabbtor 需要的
// compile "org.grails:grails-web-gsp-taglib:3.1.6"
要看一个jar包的依赖可以 看本地缓存的 pom.xml文件,这个配置得最仔细!
gradlew properties 命令特别好使,可以看到现有插件可以提供哪些属性和任务,以及默认值:
所以最终放弃本地引jar包。
---------------------------------------------------------
todo 直接把源码拿过来,使用项目依赖的方式来导入。见另外一个项目 mygradleLearn
todo 使用本地的gradle 不好用,所以gradlew的脚本不好使,还是得靠idea配置好的gradle来构建项目。