之前已经通过生成器生成了model,现在就是如何将数据展现在前端。
1. 展现数据的时候需要用到json(fastjson),添加该依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
2. 在TestConfigz中配置插件:
Prop p = PropKit.use("config-dev.txt");
DruidPlugin druidPlugin = new DruidPlugin(p.get("jdbcUrl"), p.get("username"), p.get("password"));
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.setShowSql(true);
// 所有映射在 MappingKit 中自动化搞定
_MappingKit.mapping(arp);
me.add(arp);
//启动druid
druidPlugin.start();
ps: 注意启动druid
3. 编写好空的业务层,后面通过控制层的方法直接创建业务层方法:
public class TestService {
private Log logger = Log.getLog(TestService.class);
private Ujfinal dao = new Ujfinal().dao();
}
4. 在控制层写一个获取测试数据的方法:
public void getData() {
//前台需要进行非空判断
JSONObject object = testService.getData();
if(object != null) {
setAttr("obj", object);
render("index.jsp");
}else {
setAttr("obj", null);
}
}
5. 创建业务层方法:
public JSONObject getData() {
JSONObject object = new JSONObject();
List<Ujfinal> ujfinals = null;
try {
String sql = "select * from ujfinal";
ujfinals = dao.find(sql);
if(ujfinals != null && ujfinals.size() > 0) {
object.put("user", ujfinals);
object.put("users", null);
}else {
object = null;
logger.info("没有数据");
}
}catch (Exception e) {
logger.info("sql查询出错: "+e);
}
return object;
}
6. 在index.jsp中展现数据:
<html>
<body>
<h2>Hello Jfinal!</h2>
<br />
全部数据显示:
<br />
#(obj.user)
<br />
<br />
单条数据显示:
<br />
#(obj.user[0])
<br />
<br />
单条属性显示:
<br />
#(obj.user[0].name)
<br />
<br />
空数据显示:
<br />
#(obj.users == null ? "数据为空" : obj.users[0].account)
</body>
</html>
7. 结果显示如下:
8. 总结:jfinal真好用,有些功能还需要多试试才行!