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的提問整理(一)