getModel()方法获取表单数据问题

  • 在开发中案例中,如文章:Content分别有id,name,content等字段,文章分类:Attr分别有id, name, description等字段,中间表ContentAttr分别有id, aid与cid等关联字段,在提交表单时传入文章分类关联id,当使用getModel(Content.class, true)只能获取与Content关联数据,获取不到关联文章分类关联id,且只能额外使用getPara("aid")方法去获取,干嘛不持直接getModel(Content.class, true)一起获取,如果不支持等于一个表单提交分两种方法获取提交数据,虽然是可以,但还是建议改进。

评论区

JFinal

2016-06-11 21:24

主要是因为getModel(Content.class) 时无法知道 Content 与 ContentAttr 这些关联表的关系是什么,因为 jfinal 在做 model 与表映射的时候,在content 表中确实只找到了 id,name, content 等字段,不是不想做,而是程序无法判断某个表与其它表的依存关系

lyh061619

2016-06-11 22:12

@JFinal 嗯!感谢波总回答,从上以回答分析的确没有ssh来得方便了,service层中的方法接收的是一个model类(model即是一个普通的bean),action层即传入一个类model类即可完成参数接收,不管参数是否与数据库建立映射关系,只要参数名称对应得上,即可接收。

JFinal

2016-06-11 23:02

@lyh061619 jfinal 也同样支持普通的bean,只需要使用 getBean(....) 即可,极度方便,具体到你的应用场景,直接getBean(Content.class)、getBean(ContentAttr.class)就可以解决,如果要跟SSH在此功能上比拼的话,jfinal 自然是支持的,唯一的不同的是jfinal 需要调用 getBean或者getModel,而spring可以在 action 方法中传入一个形参,这种设计方案是很早就被 jfinal 所抛弃的,以前多次讨论过,在此不再赘述

lyh061619

2016-06-11 23:21

@JFinal 您提出的这个方法也是可行的,谢谢波总!^_^...

broccoli0

2016-09-22 15:04

@JFinal 类似hibernate在映射实体中做成员变量是不是就可以找到表之间的对应关系了

JFinal

2016-09-22 15:28

@broccoli0 表关联的用法在 jfinal 手册中有示例说明,建议下载首页的 jfinal 手册看一下

broccoli0

2016-10-08 21:37

@JFinal 恩,看到了

aa11aa

2017-04-08 13:07

@JFinal 我用了getBean()之后,前台应该怎么弄呢?我获取不到值

JFinal

2017-04-08 16:45

@aa11aa getBean() 是后端的事情,getBean 时候的前台是没法干预的

阿亮

2017-06-28 19:27

@JFinal action中抛弃形参在哪讨论的能否发一下地址学习一下

JFinal

2017-06-28 21:16

@阿亮 现在已做成了分支,直接可用: https://github.com/jfinal/jfinal/tree/jfinal-java8

注意要使用 java8,并将 eclipse 编译参数打开保留形参名

热门反馈

扫码入社