JFinal mode 与 controler 问题

一千年前的人 发布于 2012/07/27 12:46
阅读 1K+
收藏 1

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

<h1>Blog 搜索</h1>
<div>
	<form action="/blog/search" method="post">
		id from:<input type="text" name="blogSearchMode.idFrom" value="${(blogSearchMode.idFrom)!}" /><br>
		id to:<input type="text" name="blogSearchMode.idTo" value="${(blogSearchMode.idTo)!}" />
	</form>
</div>
<div class="table_box">
	<table class="list">
		<tbody>
			<tr>
				<th width="4%">id</th>
				<th width="35%">标题</th>
				<th width="12%">操作</th>
			</tr>
			
			<#list blogPage.getList() as x>
			<tr>
				<td style="text-align:left;">${x.id}</td>
				<td style="text-align:left;">${x.title}</td>
				<td style="text-align:left;">
					&nbsp;&nbsp;<a href="/blog/delete/${x.id}">删除</a>
					&nbsp;&nbsp;<a href="/blog/edit/${x.id}">修改</a>
				</td>
			</tr>
			</#list>
		</tbody>
	</table>
	<#include "/common/_paginate.html" />
	<@paginate currentPage=blogPage.pageNumber totalPage=blogPage.totalPage actionUrl="/blog/" />
</div>
	public void search() {
		
		BlogSearchMode blogSearchMode = getModel(BlogSearchMode.class);
		
		setAttr("blogPage", Blog.dao.paginate(getParaToInt(0, 1), 10, 
				"select *", "from blog where id > " + blogSearchMode.getInt("blogSearchMode.idFrom") + "order by id asc"));		
	}

问题 1: The TableMapping of model: com.demo.blog.BlogSearchMode not exists. Please add mapping to ActiveRecordPlugin(activeRecordPlugin.addMapping(tableName, YourModel.class)).

BlogSearchMode用于检索条件保持, 不需要和DB绑定。

问题 2:用一个默认页面 search.html 完成两件事情(通过url进入search.html,进行面初始化【取blog分类类表】,点击页面上的搜索按钮进行search 动作 ), 只对应一个方法 public void search() {}

如何区分 search 页面初始化, 和  search 动作

加载中
1
a
alvinte

对于问题2:说实话没看懂,只能猜着回答=。=

我的方案是:这种search一般都是分页的,所以一般搜索都会带个参数pageNum,我判断有这个参数的就是查询,没有的就是初始化。

0
a
alvinte

对于问题1:

没有封装成对象,主要问题在于不知道属性的类型。

这种案例有如下的解决方案(都是实际中正在使用的),自定义一个bean,然后自己写interceptor对bean进行封装。对此JFinal本身还有PrototypeInterceptor这个东东,也提供类似的解决方案,区别就是bean和Interceptor合二为一,PrototypeInterceptor是非单例的可以包含属性。

0
一千年前的人
一千年前的人

引用来自“alvinte”的答案

对于问题1:

没有封装成对象,主要问题在于不知道属性的类型。

这种案例有如下的解决方案(都是实际中正在使用的),自定义一个bean,然后自己写interceptor对bean进行封装。对此JFinal本身还有PrototypeInterceptor这个东东,也提供类似的解决方案,区别就是bean和Interceptor合二为一,PrototypeInterceptor是非单例的可以包含属性。

能给一个例子吗? 谢谢
0
一千年前的人
一千年前的人

引用来自“alvinte”的答案

对于问题1:

没有封装成对象,主要问题在于不知道属性的类型。

这种案例有如下的解决方案(都是实际中正在使用的),自定义一个bean,然后自己写interceptor对bean进行封装。对此JFinal本身还有PrototypeInterceptor这个东东,也提供类似的解决方案,区别就是bean和Interceptor合二为一,PrototypeInterceptor是非单例的可以包含属性。

BlogSearchMode的目的是用于检索条件保持, 他不需要和DB绑定。 但是不和db绑定, JF不支持....
一千年前的人
一千年前的人
回复 @alvinte : 明白, thanks
a
alvinte
我的意思是:自己做封装对象的操作,不用getModel。 getModel之所以要求Model是因为Model中知道名为name的属性是String类型的数据。非Model的不知道属性的类型,没办法帮你做对象的封装。
返回顶部
顶部