
JFinal
lillte_bird
这个作者很懒,什么都没留下…
展开
-
JFinal+Junit 单元测试
报错在JFinal中直接使用@Test进行单元测试会报空指针错误,这是因为JFinal中部分插件没有启动导致的。并且Junit中不支持JFinal的启动类作为@RunWith的参数。所以我们需要自己写一个类,启动JFinal中的config。具体可参考该bolg解决1、新建JunitFinalTest类public class JunitFinalTest { private Constants constants; private Plugins plugins; /** * 通过原创 2021-10-12 21:06:14 · 820 阅读 · 0 评论 -
JFinal中Cache配置
1、利用paginateByCache()配置缓存2、配置cache在相应xml中添加cache配置在config中添加插件也可以通过setCache实现iCache中的方法实现缓存注意事项更新数据库后注意利用CacheKit.remove()清楚缓存原创 2021-10-05 16:22:17 · 600 阅读 · 0 评论 -
JFinal 代理
1、代理为其他对象提供一种代理以控制对这个对象的访问。简单的说就是当一个类实现一个功能之前或者之后需要做一些其他事务,例如权限检查等,为了代码的的易用性(一个类只实现一个功能)和方便测试。我们可以设置代理类来进行其他事务的处理。2、静态代理的实现1.先定义一个接口2.定义一个主类3.定义一个代理类4.调用代理类实现全部业务3、动态代理1.先定义一个接口2.定义一个主类3.利用代码自动生成代理类4.调用代理类实现全部业务...原创 2021-10-05 15:05:11 · 223 阅读 · 0 评论 -
JFinal AOP使用
1、AOPAOP是Aspect Oriented Programming,即面向切面编程。对于某些方法它们会出现在不同场景中,我们可以通过接口的方式来实现此类功能,但是还是比较麻烦。如果使用AOP就会简单很多。在JFinal中,我们会将利用拦截器、注解来实现AOP2、AOP实现原理在Java平台上,对于AOP的织入,有3种方式:编译期:在编译时,由编译器把切面调用编译进字节码,这种方式需要定义新的关键字并扩展编译器,AspectJ就扩展了Java编译器,使用关键字aspect来实现织入;类加载器:原创 2021-10-05 14:50:39 · 493 阅读 · 0 评论 -
JFinal多数据源使用
1、多数据源因为版本等问题,系统需要访问两个及以上的数据库,可以是同一数据库,也可以是不同数据库。2、使用1.配置数据库2.数据库操作原创 2021-10-05 14:43:37 · 630 阅读 · 0 评论 -
JFinal DB批量操作
1、查询2、 批量更新原创 2021-10-05 14:42:25 · 733 阅读 · 0 评论 -
JFinal增删改查
1、增加这里添加中文会乱码,可以在连接数据库中设置连接字符为UTF-82、删除3、修改进行修改时,一定要设置主键,且当不设置某字段值时,不会置为空,而是保持原值4、查询5、也可以自己设置sql语句进行操作6、注意事项1.new一个Model,这个Model自动将会绑定一个id。下图中因为user已经与上面王五11绑定了一个id,后面就会报一个主键错误2.Model中的DAO只能当作工具类使用下图报错是因为DAO时final修饰,它的值不会因为new而改变,仍然报主键错误原创 2021-10-04 19:08:28 · 879 阅读 · 0 评论 -
JFinal数据库配置
1、创建一个Model,当然,现在JFinal已经不建议这种方法的使用2、在config中配置数据库3、在action中进行对数据库中数据的增删改查4、错误这里可能需要一些架包否则会报错添加这个架包可以解决还可能缺少数据库驱动包添加这个就可以解决上面的问题...原创 2021-10-03 20:31:37 · 593 阅读 · 0 评论 -
JFinal 常用Interceptor
1.CacheInterceptor:可以将action所需要的数据在第一次访问后全部缓存起来,下一次直接从cache中取用,而不调用action。注意使用@CacheName()配置缓存文件名字2.EvictInterceptor:清除指定缓存,利用@CacheName()指定cache3.SessionInViewInterceptor可以将action中的sessio在页面上显示4.Get/Post,只允许get/post请求,否则4045.NoAction可以屏蔽直接访问原创 2021-10-02 20:28:43 · 199 阅读 · 0 评论 -
JFinal Interceptor
1、概念拦截器,顾名思义,重点在“拦截”这两个字。意思在某个方法执行之前可以定义一个“拦截器”对这个方法进行拦截,通过拦截器的拦截后,可以允许或拒绝某个方法执行。通常在众多的MVC框架中,拦截器是相对控制器controller而言的,意义在于可以对某个http请求进行拦截。在JFinal的体现中,拦截器不仅仅可以对controller控制器拦截,也可以对service层或dao层等任意拦截。2、位置拦截器在handler之后,controller之前3、作用方法拦截,代码重用,通用设置4、原创 2021-10-02 19:27:31 · 348 阅读 · 0 评论 -
keepPara、keepModel、keepBean
KeepPara会把表单所有提交的数据调用setAttribute()方法keepModel、keepBean类似原创 2021-10-02 18:40:30 · 196 阅读 · 0 评论 -
Handler实现请求拦截
1、请求拦截就是对用户访问某些资源时,进行一定的限制,例如登录才可以进行购物2、实现与路由转换类似,在handler中,对参数target进行字符串匹配,满足特定条件,进行页面跳转处理等原创 2021-10-02 18:38:26 · 246 阅读 · 0 评论 -
Handler实现路由转换
1、路由转换JFinal中更改不同url,但是最终访问同一url2、如何实现利用handler,对参数target,即你访问的url进行字符串匹配处理,然后更改target的值为configRoute中配置的值,同时要注意配置handler...原创 2021-10-02 18:37:19 · 229 阅读 · 0 评论 -
Handler实现伪静态
1、静态网页静态页面,除了我们常见的.htm和.html以后,.asp .php .jsp也可以是静态的,关键是看.asp .php .jsp这些页面是否调用了数据库里的东西,如果没有调用,它就是静态页面,调用了,就是动态页面。动态页面的含意就是,网页会根据访问者的请求,从服务器数据库里筛选访问者想要的内容显示到访问者的浏览器上,不同的人访问同一页面,会看到不同的内容,这个网页本身里并没有数据,只有一些代码,访问者看到的,都是服务器里调出来的。 就例如访问网址时后面的?中包含的数据这种请求而静态页面,原创 2021-10-02 18:35:56 · 119 阅读 · 0 评论 -
JFinal Handler
1、概念Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。、2、原理3、使用1.在config添加handler,会按照代码顺序依次添加handler,形成消息队列2.在自定义handler代码中添加里相应其他配置...原创 2021-10-02 18:30:03 · 285 阅读 · 0 评论 -
JFinal重复验证token
什么是token?服务器对用户的请求随机生成一个随机字符串令牌,用户访问服务器时服务器验证这个令牌JFinal 已经对Token提供了支持,大致步骤如下:1:创建一个 action,在此 action用一下createToken("myToken")render(xxx.html)`2:在xxx.html 中用一个隐藏域<input type=“hidden”name="myToken", value=${myToken!}#myToken即为随机字符串3:在接收提交的 actio原创 2021-10-02 15:45:12 · 254 阅读 · 0 评论 -
JFinal转发
1、JFinal转发三种方式redirect、直接调用action、forwardActionredirect直接调用actionforwardAction()三者区别action只是调用自定义方法,forwardaction()会经过一系列拦截器原创 2021-10-01 17:22:47 · 477 阅读 · 0 评论 -
JFinal Cookie Session
Cookie和Session的区别Session的运行逻辑原创 2021-10-01 16:56:12 · 476 阅读 · 0 评论 -
getFile
1.在标签页指定类型2.在控制类中调用getFile(),文件默认上传到项目upload文件夹下(自动新建)原创 2021-09-29 17:09:22 · 1087 阅读 · 0 评论 -
GetBean GetModel
getModel与getBean区别在于前者使用数据库表字段名而后者使用与setter方法一致的属性名进行数据注入。建议优先使用getBean方法。以下是一个简单的示例:定义一个JavaBean.2.在表单标签里定义类名.属性名,注意类名就是JavaBean类名,首字母小写3.实例化JavaBean类,直接利用get()接收参数其他注意1.在2中标签中可定义类名,但是在注意中实例化JavaBean类要设置第二个参数为标签类名。若无标签类名,则第二参数为""即可。JavaModel(原创 2021-09-29 15:04:16 · 119 阅读 · 0 评论 -
JFinal路由configRoute
路径组成由Config类中的configRoute的参数me.setBaseViewPath("/view"),route.add(…,…,ViewPath)中的BaseViewPath和Controller中的ViewPath组成。BaseViewPath+ViewPath+Path绝对路径是项目名/src/main/webapp/BaseViewPath/ViewPath/Path##注意1.当在Controller类中路劲为"/xxxx",此时为绝对路径,me.setBaseViewPat原创 2021-09-29 10:52:00 · 610 阅读 · 0 评论