第
1,
2,
3,
4,
5 页
我们需要确保后退按钮和多标签或窗口不会破坏应用程序,并且能够正常工作。 为此,将引入一个“交谈”,它在执行搜索时开始,在用户为定单付款时结束。 让我们从一个会话 Bean 入手,它将负责处理搜索操作并在结果之间导航:
package com.jboss.dvd.seam;import [...]@Stateful@Name("search")@Conversational(ifNotBegunOutcome="main")@Scope(ScopeType.CONVERSATION)@Interceptors(SeamInterceptor.class)public class SearchAction implements Search, Serializable{ @In(create=true) ShoppingCart cart; @PersistenceContext(unitName="dvd") EntityManager em; private int pageSize = 20; private int currentPage = 0; private boolean hasMore = false; private Category category = null; private String title = null; private String actor = null; @Out(scope=CONVERSATION,required=false) List <Product> searchResults; @Out(scope=CONVERSATION,required=false) Map <Product, Boolean> searchSelections; // Getters and setters for // category, title and actor @Begin(join=true, processDefinition="shopping") public String doSearch() { currentPage=0; updateResults(); return "browse"; } public String nextPage() { if (!isLastPage()) { currentPage++; updateResults(); }return null; } public String prevPage() { if (!isFirstPage()) { currentPage--; updateResults(); }return null; } public boolean isLastPage() { return (searchResults != null) && !hasMore; } public boolean isFirstPage() { return (searchResults != null) && (currentPage == 0); } private void updateResults() { [...] searchResults = [...] searchSelections = [...] } private Query searchQuery(String title, String actor, Category category) { title = (title == null) ? "%" : "%" + title.toLowerCase() + "%"; actor = (actor == null) ? "%" : "%" + actor.toLowerCase() + "%"; if (category == null) { return em.createQuery( "from Product p where lower(p.title) like " + ":title and lower(p.actor) LIKE :actor") .setParameter("title", title) .setParameter("actor", actor); } else { return em.createQuery( "from Product p where lower(p.title) like " + ":title and lower(p.actor) like :actor " + "and p.category = :category") .setParameter("title", title) .setParameter("actor", actor) .setParameter("category", category); } } public String addToCart() { for (Product item: searchResults) { Boolean selected = searchSelections.get(item); if ( selected!=null && selected ) { searchSelections.put(item, false); cart.addProduct(item, 1); } } return "browse"; } @Destroy @Remove public void destroy() {} }
这个有态会话 Bean 被存储在交谈的上下文中,它将存活于交谈中,并在交谈结束时消亡。 购物车是由 Seam 管理的另一会话 Bean 组件,并被注入到 SearchAction
会话 Bean,这样便不会在在建立多个搜索时丢失它。 searchResults
和 searchSelections
对象将存活于当前交谈中;它们占用的内存将在交谈结束时释放。
分享到:
相关推荐
赠送jar包:jboss-threads-3.1.0.Final.jar; 赠送原API文档:jboss-threads-3.1.0.Final-javadoc.jar; 赠送源代码:jboss-threads-3.1.0.Final-sources.jar; 赠送Maven依赖信息文件:jboss-threads-3.1.0.Final....
赠送jar包:jboss-logging-3.4.3.Final.jar; 赠送原API文档:jboss-logging-3.4.3.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.3.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.3.Final....
赠送jar包:jboss-logging-3.4.1.Final.jar; 赠送原API文档:jboss-logging-3.4.1.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.1.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.1.Final....
赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....
赠送jar包:jboss-threads-3.1.0.Final.jar; 赠送原API文档:jboss-threads-3.1.0.Final-javadoc.jar; 赠送源代码:jboss-threads-3.1.0.Final-sources.jar; 赠送Maven依赖信息文件:jboss-threads-3.1.0.Final....
赠送jar包:jboss-websocket-api_1.1_spec-2.0.0.Final.jar; 赠送原API文档:jboss-websocket-api_1.1_spec-2.0.0.Final-javadoc.jar; 赠送源代码:jboss-websocket-api_1.1_spec-2.0.0.Final-sources.jar; 赠送...
赠送jar包:jboss-logging-3.4.2.Final.jar; 赠送原API文档:jboss-logging-3.4.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.2.Final....
赠送jar包:jboss-annotations-api_1.3_spec-2.0.1.Final.jar; 赠送原API文档:jboss-annotations-api_1.3_spec-2.0.1.Final-javadoc.jar; 赠送源代码:jboss-annotations-api_1.3_spec-2.0.1.Final-sources.jar;...
3. **jboss-as-web.Final-RECOMPILE.jar的作用**:这个文件包含了JBoss AS 7 Web层的重新编译逻辑。当Web应用的源代码发生变化时,该组件负责识别这些变化并重新编译受影响的类,然后将其加载到内存中,以便服务器...
标签:jboss、xnio、nio、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用...
标签:jboss、xnio、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
赠送jar包:jboss-logging-3.4.3.Final.jar; 赠送原API文档:jboss-logging-3.4.3.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.3.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.3.Final....
赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....
赠送jar包:jboss-websocket-api_1.1_spec-2.0.0.Final.jar; 赠送原API文档:jboss-websocket-api_1.1_spec-2.0.0.Final-javadoc.jar; 赠送源代码:jboss-websocket-api_1.1_spec-2.0.0.Final-sources.jar; 赠送...
赠送jar包:jboss-annotations-api_1.3_spec-2.0.1.Final.jar; 赠送原API文档:jboss-annotations-api_1.3_spec-2.0.1.Final-javadoc.jar; 赠送源代码:jboss-annotations-api_1.3_spec-2.0.1.Final-sources.jar;...
标签:jboss、xnio、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用...
赠送jar包:jboss-logging-3.4.1.Final.jar; 赠送原API文档:jboss-logging-3.4.1.Final-javadoc.jar; 赠送源代码:jboss-logging-3.4.1.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.4.1.Final....
标签:jboss、xnio、nio、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
3号包: org.apache.log4j org.apache.openjpa org.apache.axis org.apache.catalina org.apache.commons org.apache.coyote org.apache.ibatis org.apache.juli 4号包: org.apache.tiles org.apache.velocity org....
标签:netty、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。