这几天把一个Grails做的Web应用从1.3.7升级到1.4.0(目前还是M1),有很多兼容性问题,应用几乎都跑不起来,怪不得官方已经准备把1.4.0改成2.0发布。但幸运的是应用比较简单,问题并不多,也不很严重,可以通过修改少量代码来移植,下面讲述我遇到的问题以及解决过程,希望对准备升级的程序员有一些参考价值。主要有以下几项:
1. 自定义的js文件无法导入使用,且在IDE中修改js文件Web服务器不会自动加载(reload)
自定义的js原来用<g:javascript library="xxxxx"/>方式导入的,现在已经无效了,改为以下方式导入:
<g:javascript src="xxxxxx.js"/>
或者使用Resources插件对js资源进行管理:
<r:external dir="js" file="xxxxx.js"/>
刷新页面,可以看到生成了<appname>/static/js/xxxxx.js,而不是原来的<appname>
/js/xxxxx.js,而对<appname>?js/xxxxx.js的访问会自动重定向到static的资源上,这是Resource插件在起作用,此时的js文件(当然也包括其他资源,如CSS,
images)作为了静态资源,任何对js文件的改动都不会对运行时的Web服务器生效。为了便于开发调试,需要在
Config.grovvy中加入设置
grails.resources.debug = true
重启服务器后再修改js的内容时,服务器会自动reload资源。此时观察生成的代码,变成了
<appname>/js/xxxxx.js?_debugResources=y&n=1310271245143
2. formRemote标签(所有Ajax风格的标签)渲染报错
我使用了formRemote之类的标签无刷新提交表单,该标签会生成Ajax风格的HTML form,1.3.7之前的版本默认使用prototype作为Ajax工具,而1.4.0使用jQuery。升级后渲染页面会产生如下错误信息:
No javascript provider is configured at ......
这是因为默认的javascript框架从prototype改为jQuery,导致一些标签和JS功能无法正常使用。
首先需要安装jQuery插件和Resources插件(安装方法不赘述),然后在GSP页面中加入如下代码,显式设置JS框架为jQuery,
<g:setProvider library="jquery"/>
在layout/main.gsp中按照下面方式加入<r:layoutResource/>标签:
<head>
<g:layoutHead />
<r:layoutResources/>
</head>
此时刷新页面,查看网页代码可以发现已经生成了基于jQuery的代码。
3. 默认的开发数据库从HSQL改为H2。
因为之前我就把测试数据库改为了H2,因此在这个上面没有出现任何兼容性问题。不过H2确实是值得推荐的内存数据库,体积很小,但是功能齐全,开箱即用,与HSQL完全相同的工作模式和使用方法,配置方式都是一样的,但是比HSQL更加稳定(至少我是这么认为的,HSQL我无法开箱即用,我只是要做测试而已),功能更多。更为有趣的是,它自带了一个Web版本管理查询界面,用起来也很顺手。
4. createLinkTo(url="/")标签使用出错。
createLinkTo标签在1.4中被废弃,文档建议改用resource,而实际情况应该使用createLink标签,将代码改为createLink(uri:'/')即可。
5. 在Controller内定义的方法 def foo() 调用报错
错误信息为:
groovy.lang.MissingMethodException: No signature of method: xxx.yyy.foo() is applicable for argument types: (java.lang.String) values: [XXXXXX]
把方法定义def foo()改为 protected foo() 形式的定义即可。这个有点奇怪,是因为闭包的问题?还是def定义的可访问性原因?反正我没搞清楚,不想太深究。
分享到:
相关推荐
体育课评分系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS
研究报告
客运自助售票小程序 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS
一个完整yolov8整合包yolov8-一体机一个完整yolov8整合包参考仓库https://github.com/z1069614715/objectdetection_scriptB站教学视频https://www.bilibili.com/video/BV15g4y157MF/
解决CAM350导入gerber提示“找不到首标题%,载入停止” 把文件放到gerber上一层或gerber层,运行此bat命令即可
行业研究报告、行业调查报告、研报
使用yolov7训练自己的数据集pytorch-yolov7使用yolov7训练自己的数据集参考https://github.com/WongKinYiu/yolov7
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
机电一体化系统中机器学习应用的最终项目交通标志检测-Tensorflow-YOLOv3-YOLOv4与 Syed Imad 合作完成的机电一体化系统中机器学习应用的最终项目 ( https://github.com/syed019 )关于任何识别系统都有两个主要任务检测(在输入图像上找到物体的位置和大小)和分类(将检测到的物体分类为子类)。这两项任务通常都使用单个检测/分类模型(如 YOLO 或 SSD)完成,其中输入图像用边界框和相应的类别标记。但是,标记和训练此类数据集需要大量时间和精力。因此,该项目的主要目标是仅检测一个主要类别(标志),并集成定制的卷积神经网络来对检测到的物体进行分类(子类,如限速、停车标志等)。这样,我们只需要训练一次检测模型来检测一个主要类别,而可以根据任务要求训练多个分类模型来对检测到的物体进行分类。输出实时检测对已保存图像进行检测 设置和要求OpenCV(版本 4)PythonNumpyTensorFlow喀拉拉YOLO 实现对于这个项目,由于时间限制,我们决定使用公开可用的数据集(德国交通标
Yolov3的Pytorch版本实现模板检测YOLOV3-火灾探测csdn githubYolov3的Pytorch版本实现模板检测,其具体效果如下要求环境windows10编程语言python编程工具pycharm所需的包requirements.txt火车1.安装包本次需要的包在requirements.txt中,通过 pip install -r requirements.txt即可。2.所需体重文件$ cd weights/$ bash download_weights.sh进入weights目录下,运行sh文件,即可下载本次所需权重,即darknet53.conv.74,yolov3.weights,yolov3-tiny.weights3.修改配置文件信息$ cd config/$ bash create_custom_model.sh <num_classes>进入config目录。执行bash create_custom_model.sh <num_classes>,其中num_classes为类别参数,根据
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Yolov4-deepsort-头盔检测使用darknet 框架YOLOv4 模型训练的头盔(安全帽)检测器。测试环境Windows 10 x64 2020 (build 19041.388)NVIDIA RTX 2070 SuperCUDA 10.1 / CuDNN 7.6.5Python 3.7.7 x64tensorflow 2.2.0 GPU受训重量Google 云端硬盘放入体重文件./configs要使用自己的数据集进行训练,你应该自己使用darknet。并且需要更改一些参数使用数据集roboflow.ai 公共数据集+ 约 100 张图片依赖项Pythonopencv-python、numpy、scikit-image在图像上绘制框和文本TensorFlow 2.2.0使用DeepSORT模型来跟踪对象matplotlib创建颜色图CUDA 10.1 / CuDNN 7.6.5暗网用于 yolov4 物体检测dark.dll, pthreadVC2.dll (windows)预编译(我不确定它是否可以在不同的机器上运行
研究报告
内容概要:本文详细介绍了运算放大器和比较器的基本原理及其内部电路结构。内容涵盖了运算放大器和比较器的定义、内部电路、绝对最大额定值、电气特性、相位延迟、振荡、可靠性和响应时间等方面。通过具体的公式和实例,阐述了它们的工作机制和技术细节。 适合人群:具有电子工程背景的专业人士,尤其是从事模拟电路设计的技术人员。 使用场景及目标:适用于理解和设计运算放大器和比较器的应用电路,帮助读者掌握其关键技术和参数,优化电路性能。 其他说明:文中提供了大量图表和实例,以便读者更好地理解和应用相关理论。同时,还详细介绍了如何解决一些常见问题,如振荡、失真和噪声等问题。
基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐
YOLOC 是将不同的模块组合起来构建不同的物体检测模型,包括 YOLOv3、YOLOv4、Scaled_YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOR、PPYOLO、PPYOLOEYOLOC介绍 YOLOC正在组合不同的模块来构建不同的对象检测模型。结合一些模块和技巧来改进YOLO检测模型,使用不同数据集的效果不一致。需要通过具体的实验进行尝试和验证YOLOC中的支持的模块有主流 YOLOv3 模型网络结构主流YOLOv4模型网络结构主流 Scaled_YOLOv4 模型网络结构主流YOLOv5模型网络结构主流 YOLOv6 模型网络结构主流 YOLOv7 模型网络结构主流 YOLOX 模型网络结构主流 YOLOR 模型网络结构 PicoDet模型网络结构变压器架构的主干、颈部、头部改进了变压器系列的骨干、颈部、头部注意系列的脊椎、颈部、头部基于anchor-free和anchor-based的检测器FPN、PANet、BiFPN等结构CIoU、DIoU、GIoU、EIoU、S
## 数据指标说明 资源名称:2000-2021年县域农产品产量面板数据 区域范围:全国各县区 时间范围:2000-2021年 格式:Excel 数据量:近30w 指标:县域代码、县域名称、所属地级市、所属省份、产品种类或名称、单位、产量
研究报告
基于 NCNN 的 YOLOv5/YOLOv7/YOLOv8 检测和姿势推理的 Android 库基于NCNN的 YOLOv5/YOLOv7/YOLOv8 检测/姿势推理的 Android 库支持yolov5、 edgeai-yolov5、 yolov7、 yolov8系统Android 5.0+(21)English 中文如何1 下载.aar文件2 将.aar 文件放入 app/libs 目录中3 编辑 app/build.gradleimplementation files('libs/yolo_mobile_release_xxxxyyzz_v.*.aar')4 将ncnn.bin和.param放入assets目录5 创建名为'yolo_cfg.json'的新文件{ "name": "yolov8n", "input_size": 384, "param": "yolov.param", "bin": "yolo.bin", "box_thr": 0.5, "iou_thr": 0.5, "nkpt":