OSC上关于Jfinal的提问整理(二)

1.【问】:Db.tx(new IAtom())事务不起作用?


【jfinal答】:1:如果使用的mysql,确保引擎为 InnoDB


2:这行代码改一下Db.save(c3p0Plugin.getDataSource(), "tb_test", "PK_ID",
record);去掉 c3p0Plugin.getDataSource()这个参数。






2.【问】:JFinal使用el标签取元素属性报 does not have the property 错误。
我在Controller中往session中放了一个User对象,jsp页面el标签取对象属性的时候报错:
User' does not have the property 'nickName'.
是什么问题呢?


P.S1.Config中已经进行模型映射
arp.addMapping("user", User.class);
2.表中也有nickName这个字段
3.jsp页面表达式${sessionScope.curUserObj.nickName}
4.在页面 ${sessionScope.curUserObj}能输出user对象,并且也有nickName属性:
 bean.User@4a952b12 {id:1, status:null, nickName:Romotc, email:r@ail.com, pswd:4e6327, lastLoginTime:, registerTime:2:56.0}




【jfinal答】:   JspRender对HttpServletRequest对象中的数据进行了处理,数据全被放入了Map之中,如果希望不被处理,可以通过在YourJFinalConfig中调用一下:JspRender.setSupportActiveRecord(false)。
    由于JFinal为了Resful,session中的数据默认是不处理的,所以session中的数据无法通过${blog.title}获取到。这个问题本质上是JSTL数据读取能力太弱造成的,建议使用FreeMarker取代JSP




3.【问】:当from加上属性enctype="multipart/form-data"获取不到表单的参数,除掉没问题。

【jfinal答】:如果请求类型为"multipart/form-data",必须先调用任意一个 getFile 方法,因为 multipart 请求的解析是在 getFile 方法中完成的。调用完后就可以通过 getPara 方法来获取值了。




4.【问】:使用getPara获取值的时候的乱码问题如何解决?是在内置的jetty环境下。


【jfinal答】:getPara 获取值取到是乱码的问题可能与字符集设置有关,JFinal默认字符集为utf-8,可以通过 me.setEncoding(String)设置成别的字符集,注意页面字符集与jfinal字符集设置一致


5.【问】:在JFinal里,请问UrlPara与Parameter有什么区别?


【jfinal答】: urlPara 是指没有名字只有位置,并且是在url存在的参数。而常规 para 都有个名字,如表单中通过input设置的,以及在url中通过问号挂参设置的。




6.【问】jfinal怎么使用druid的监控呀!(集成jfinal)


【jfinal答】:JFinal 1.1.3 已经集成了,您无需在 web.xml 中添加配置就可以使用,要使用这个功能,只需分两步:
1:在 configPlugin中添加DruidPlugin
public void configPlugin(Plugins me) {
  // DruidPlugin
  DruidPlugin dp = new DruidPlugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"));
  dp.addFilter(new StatFilter());
  WallFilter wall = new WallFilter();
  wall.setDbType("mysql");
  dp.addFilter(wall);
  me.add(dp);


  // ActiveRecordPlugin
  ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
  ......
  me.add(arp);
}


2:在configHander 中添加DruidHandler
public void configHandler(Handlers me) {
  DruidStatViewHandler dvh =  new DruidStatViewHandler("/druid");
  me.add(dvh);
}




http://www.oschina.net/question/727605_71999






7.【问】:如何很好的设计jfinal的controller层的类?


【jfinal答】:JFinal 建议的项目结构:


1:总体划分规则:先分模块,然后在模块中分层。
2:模块划分:中小型项目,每个领域模型划分为一个模块,如 jfinal demo 给出的 blog就是一个模块。大型项目可以在模块下面划分子模块。
3:层次划分:中小型项目可以在模块下面直接以类文件命名来约定层次,如Controller层为BlogController,Model层为Blog,业务层为BlogService。大型项目可以为层分配子包,如在模块下面创建service、controller、model包,然后在包中再创建该层次的相关类文件。
4:为了极速开发,中小型项目,可以不使用Service层,而且业务全部放入Model,称之为充血领域模型。


OSC上关于Jfinal的提问整理(一)



转载于:https://my.oschina.net/muchuanwazi/blog/125178

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值