2018-09-01 14:28
@hb963724769 还要检查一下 tomcat 下面的 lib 包中是否存在与你项目中重复的 jar 包,这里所指的重复是指项目重复,但版本不同
2018-09-01 13:01
这个问题还是第一次碰到,挺奇怪的
NoClassDefFound 这个异常一般是 jar 文件版本冲突(例如,引入了不同版本的同一个项目的jar包),或者 class 文件被损坏,建议你 mvn clean 一下,然后重新编译 mvn compile
最后重新打包 mvn package
错误提示的那个 Controller 所在的 jar 包可能被损坏。 此外,要格外注意一下是不是有外部的程序在修改破坏你的 jar 包或者修改你的 WEB-INF/classes 下面的 class 文件
建议 tomcat 下的部署方式采用这种:
https://my.oschina.net/jfinal/blog/353062
最后,这个问题肯定是与 jfinal 无关的,是某种不明原因造成你的 jar/class 文件版本不对或者被损坏。 这种损坏是 jfinal 肯定干不了的事
2018-08-31 15:14
@不旺旺的仙贝 如果路由不能改,就得使用 handler 来转换,参考 com.jfinal.ext.handler 包下面的一些 handler 实现
2018-08-31 15:09
@不旺旺的仙贝 什么意思?
controller 没有这么长?
controller 只到 post ?
URL 地址栏把参数传到 post 这个 controller 里?
都听不懂
2018-08-31 14:52
我看到你的 /service/business 这两部分也需要是参数,这个 jfinal 的路由没有直接支持,改成减号分隔就可以了:
/service-business-3a093e20-58cb-46a2-bcc9-b31e6b74566c
改成上面的格式以后,getPara() 不带参时就是获取整个参数本身,获取以后可以适当做一下切割:
getPara().split("-");
getPara(int) 带 int 参数时会按位置获取参数,例如 getPara(1) 就会获取到 "business" 这个参数,这个在文档中都有代码实例
jfinal 在 url 中传参时,不支持 "/" 作为分隔符,而是使用减号 "-" 作为分隔符,这个在传参这件事情的本质上没有什么区别,但好处却很多
例如减少路径的深度,提升了搜索引擎对期的权重
例如极大提升路由匹配的效率等等