初次使用jfinal的小结

鱼中鱼 发布于 2012/06/04 09:40
阅读 1K+
收藏 3
 

@JFinal 你好,想跟你请教个问题:

1、类的命名规则
例如:对blog对象进行操作,controller类需要以Blog打头+Controller
对blog对象属性进行验证,validator类需要以Blog打头+Validator
对blog的各项操作进行拦截,Interceptor类需要以Blog打头+Interceptor
2、资源文件调用规则
例如:调用add.jsp页面,需要放在blog/add.jsp路径,render时,只需指名文件名或全路径
不支持action,如/blog/add
3、对多个实体的操作可以共有同一个controller


Question:
1、页面中对象属性的引用,导致对外暴露了表及字段
2、实体对象名中只能出现一个大写字母,如Blog,出现BlogC时,BlogC对象接收到页面参数全为空。
3、如何防止重复提交
4、如何控制访问权限,比如只能访问/blog/add,不允许直接访问add.jsp
5、后台怎么接收前台传的多个复选框的值?如选中多后,后台默认只接收第一个选中的值。

实话说,看过一遍手册,没记住!

加载中
0
JFinal
JFinal

非常感谢,提出这么好的问题,

1:类的命名规则,完全可以随心所欲地命名,demo项目中仅仅是个人习惯,也是JFinal提倡的命名规则。

2:在 Action 中串联使用另一个Action应该使用forwardAction(...)方法。

3: 实体对象名中只能出现一个大写字母,可以这样 getModel(BlogC.class, "blog");

4:如何防止重复提交,请看这里:http://my.oschina.net/wangyongqing/blog/56134

5:对多个实体的操作完全可以使用同一个Controller,可以随心所欲,无任何约束与约定。

6:你可以创建Handler或Filter过虑外界对静态资源如html的直接请求,也就不会暴露了。JFinal提倡请求应该到先到达Controller而不是view。

7:如果要控制对页面的访问权限,使用Handler最方便了,如果是做权限管理,用Interceptor是首选。

8:通过调用Controller中的 getParaValues() 可以获取多个复选框的值。

9:打完收工

0
鱼中鱼
鱼中鱼

还有个问题,a_little_config.txt文件里的配置只适用于mysql,如果我用oracle,只修改jdbcUrl就可以吗?

JFinal
JFinal
new C3P0Plugin 时,传入驱动参数就可以,C3P0Plugin重载了很多构造方法
0
小窝他爹
小窝他爹
下一个版本会支持oracle
0
a
alvinte

1、类的命名规则

对于命名没有约束,只需继承类或者实现接口即可。

2、资源文件调用规则

action也是支持的,配置路由时可指定资源文件相对路径,对于/blog/add这个action,默认render为相对路径下的“add.默认视图类型”对应的资源文件

3、对多个实体的操作可以共有同一个controller

这句话不太明白是什么意思,每一次请求都会生成一个controller对象,这与多个实体操作并无直接关系。

Q1:任何模板工具都是同样的使用方法吧,对于静态资源的直接访问,如果担心暴露数据库结构可以放到WEB-INF目录下,对于action的访问,都是可控的,就不用说了吧。

Q2:表单中的实体对象名,可以指定,使用API:getModel(class,name)即可

Q3:防止重复提交有Token这个机制,可以参阅相关文档。

Q4:这个貌似和Q1差不多吧。

Q5:这种一个name对应多个value的,应使用getvalues来获取全部值的数组。

鱼中鱼
鱼中鱼
非常感谢,耐心的解答。
0
鱼中鱼
鱼中鱼
防止重复性提交有个问题,比如第一次提交的时候,页面表单填写不完整,经过validate之后,需要再次提交时,这个token当作重复性提交了,这个怎么处理?
鱼中鱼
鱼中鱼
在validator不通过时,重新生成token,跳转至输入页面,重新输入提交。搞定。
0
鱼中鱼
鱼中鱼
在配置jf的filter时,要注意只针对特殊路径进行mapping映射,如果/*接管所有路径后,对其它的servlet会影响 。
JFinal
JFinal
你可以试试将Serlvet配置放在 JFinal配置之前,应该会先生效。另外,就算JFinal接管了所有请求,你仍可以在Handler 中过滤掉。另外你可以用Handler实现与Servlet一样的功能,还能免去在web.xml 中的配置
0
JackFace
JackFace

恩,经过做简单的页面和看源代码,发现不错的,支持新版本,谁有后台给我发一个,我没有时间去写。jacking124@gamil.com

 谢谢

0
JFinal
JFinal

引用来自“jacking124”的答案

恩,经过做简单的页面和看源代码,发现不错的,支持新版本,谁有后台给我发一个,我没有时间去写。jacking124@gamil.com

 谢谢

所有文件在这里有下载:  http://code.google.com/p/jfinal/downloads/list
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部