Java 双通道JSP页面呈现
假设一个例子。我有以下界面:Java 双通道JSP页面呈现,java,jsp,asynchronous,Java,Jsp,Asynchronous,假设一个例子。我有以下界面: public interface DataSource<T> { Future<T> fetch(); } 公共接口数据源{ 未来获取(); } 此数据源可以执行异步数据获取。对于在JSP中使用datasource,我们有以下标记: <html> <d:fetch from="${orderDS}" var="orders"> <c:foreach in="${orders}" var="o
public interface DataSource<T> {
Future<T> fetch();
}
公共接口数据源{
未来获取();
}
此数据源可以执行异步数据获取。对于在JSP中使用datasource,我们有以下标记:
<html>
<d:fetch from="${orderDS}" var="orders">
<c:foreach in="${orders}" var="order">
<div class="order">
<c:out value="${order.title}" />
</div>
</c:foreach>
</d:fetch>
</html>
那么,我想要什么?我希望JSP呈现引擎调用我的自定义标记(本例中为FetchTag)两次。第一次调用时,FetchTag将执行DataSource.fetch()调用,并将Future本地保存为对象字段。在第二次调用FetchTag时,执行Future.get()调用,并将被阻止,直到数据可用为止
有没有办法做到这一点?我认为更好的设计不会试图改变JSP呈现。将所有数据库代码放在它所属的服务器端,并使用AJAX调用从服务器端组件获取数据 一般来说,我发现在自定义标记库中嵌入东西是个坏主意。我只需要JSTL和/或Spring标记库。如果我觉得我的用户界面需要做更多的工作,我的想法是错误的
对于禁用JS的客户端,我只会让它们执行数据的往返,而不是在后台执行。给他们一个选择:等待或打开JS。我认为更好的设计不会试图改变JSP呈现。将所有数据库代码放在它所属的服务器端,并使用AJAX调用从服务器端组件获取数据 一般来说,我发现在自定义标记库中嵌入东西是个坏主意。我只需要JSTL和/或Spring标记库。如果我觉得我的用户界面需要做更多的工作,我的想法是错误的
对于禁用JS的客户端,我只会让它们执行数据的往返,而不是在后台执行。给他们一个选择:等待或打开JS。是的,我们已经考虑过了。但我们试图保存与禁用js的客户端的兼容性。也许有另一个模板引擎更适合这个任务?是的,我们考虑过了。但我们试图保存与禁用js的客户端的兼容性。可能存在另一个更适合此任务的模板引擎?