相亲网站界面设计西安关键词优化软件
相亲网站界面设计,西安关键词优化软件,做家装模型的效果图网站,医疗公司logo设计图片jasperreports这是JasperReports JSF插件系列的第一篇“用例文章” #xff0c;我将专注于一个简单的需求#xff0c;并且我将进一步深入。 起点是我们已经为图书商店完成的项目设置#xff0c;我将向其中添加一个列表#xff0c;其中包含在数据库中注册的其他图书#xf… jasperreports 这是JasperReports JSF插件系列的第一篇“用例文章” 我将专注于一个简单的需求并且我将进一步深入。 起点是我们已经为图书商店完成的项目设置我将向其中添加一个列表其中包含在数据库中注册的其他图书该列表也将作为报告提供。 当向用户显示报告时我们的应用程序将提供以下功能 用户将能够选择报告的输出格式。 报告视图将是可本地化的并将以与应用程序用户相同的语言环境输出。 最初设定 为了避免从功能上创建所有CRUD为简单起见我将初始化包含将使用SQL脚本显示的值的表。 仅几条记录就足以满足本文的目的因此我将使用以下脚本来提供书本表 insert into book(title, author, published_year, genre, price)values(The Futurogical Congress, Stanislaw Lem, 1978, SciFi, 2.5);
insert into book(title, author, published_year, genre, price)values(Brave New World, H. G. Wells, 1975, SciFi, 3.99);
insert into book(title, author, published_year, genre, price)values(Treasure Island, Robert Lewis Stevenson, 1948, Adventures, 4.45);
insert into book(title, author, published_year, genre, price)values(The Lord of the Rings, J. R. Tolkien, 1945, Fantasy, 12.23);
insert into book(title, author, published_year, genre, price)values(In Cold Blood, Truman Capote, 1966, Nonfiction, 9.50); 我将创建一个资源包其中将包含视图和报告的本地化文本。 该文件的名称为Messages.properties 我将其添加到资源根文件夹下的包net.sf.jasperreports.jsf.sample.usecases中 。 文件内容如下 report.format.selectSelect report formatbookList.pageTitleBrowsing Books
bookList.idReference ID
bookList.titleTitle
bookList.authorAuthor
bookList.genreGenre
bookList.yearYear
bookList.pricePrice 我添加了与上一个文件类似的另一个文件但名为Messages_es.properties并保留了西班牙语翻译如果您对支持多个以上的语言感兴趣可以添加其他首选语言。 必须在faces-config.xml文件中配置先前的资源文件 faces-config ...applicationlocale-configdefault-localeen/default-localesupported-localees/supported-locale/locale-configresource-bundlevarMessages/varbase-namenet.sf.jasperreports.jsf.sample.usecases.Messages/base-name/resource-bundle/application
/faces-config 由于我使用的是Maven因此我将在项目结构内配置一个文件夹来保存报告的.jrxml文件并配置POM以对该文件夹运行JasperReports编译器。 我选择的文件夹名称是src / main / jasperreports JasperReports Maven插件的POM配置如下 plugingroupIdorg.codehaus.mojo/groupIdartifactIdjasperreports-maven-plugin/artifactIdversion1.0-beta-2/versionexecutionsexecutiongoalsgoalcompile-reports/goal/goals/execution/executionsconfigurationoutputDirectorytarget/jasperreports/jasper/outputDirectory/configurationdependenciesdependencygroupIdnet.sf.jasperreports/groupIdartifactIdjasperreports/artifactIdversion4.5.1/version/dependency/dependencies
/plugin 我还将在Maven WAR插件中添加一些额外的配置以便它可以收集JasperReports编译器生成的所有.jasper文件并将它们打包在应用程序WAR文件中 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion2.2/versionconfigurationwebResourcesresourcedirectorysrc/main/jasperreports/directoryincludesinclude**/*.jrxml/include/includestargetPathresources/reports/sources/targetPath/resourceresourcedirectorytarget/jasperreports/jasper/directoryincludesinclude**/*.jasper/include/includestargetPathresources/reports/jasper/targetPath/resource/webResources/configuration
/plugin 您可能会注意到我将JasperReports的.jrxml文件打包在Web应用程序归档文件中。 当使用插件时我们可以将其作为报告模板资源进行引用插件引擎足够智能可以识别所引用文件的类型而当使用对报告源文件的引用时插件将即时编译报告。 但是首选方法应该始终是使用.jasper文件因为它比其他文件具有更好的性能。 设计报告模板 如本系列简介中所述我将使用的JasperReports视觉设计工具是iReport那里有很多关于如何使用iReport的教程因此我将跳过这一部分。 但是由于我要设计一个可识别语言环境的报告因此必须注意JasperReports网站上提供的I18n Sample 。 因此我们启动iReport并选择一个空白报告模板。 由于我们的报告将使用基于SQL的数据源因此可视设计器完成加载后我们必须配置SQL语句以从数据库中获取数据。 为此我们必须在设计器视图中单击缩放选项左侧的按钮然后选择“报告查询”标签 我将用来获取数据SQL查询是我们可以做的最简单的查询。 输入该SQL语句后iReport将在窗口下部显示所有可用字段。 如果它可以加载所有字段而没有任何错误则单击“确定”按钮以保存它们以进行报告 select * from book; 我的最终报告中将输出的所有文本都将来自资源包或数据库本身。 因此正如JasperReports i18n示例所指出的无论何时要输出一些文本都应使用文本字段。 报表设计视图将如下图所示 报告模板文件的XML视图将类似于以下内容 ?xml version1.0 encodingUTF-8?
jasperReport xmlnshttp://jasperreports.sourceforge.net/jasperreportsxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsdnamebooklist pageWidth595 pageHeight842 columnWidth555 leftMargin20 rightMargin20topMargin20 bottomMargin20property nameireport.zoom value1.5/property nameireport.x value0/property nameireport.y value0/queryString![CDATA[select * from book]]/queryStringfield nameBOOK_ID classjava.lang.Integer/field nameTITLE classjava.lang.String/field nameAUTHOR classjava.lang.String/field namePUBLISHED_YEAR classjava.lang.String/field nameGENRE classjava.lang.String/field namePRICE classjava.math.BigDecimal/backgroundband splitTypeStretch//backgroundtitleband height38 splitTypeStretchtextFieldreportElement x0 y0 width227 height29/textElementfont size18 isBoldtrue//textElementtextFieldExpression![CDATA[$R{bookList.pageTitle}]]/textFieldExpression/textField/band/titlecolumnHeaderband height27 splitTypeStretchtextFieldreportElement x0 y0 width100 height20/textElementfont isBoldtrue//textElementtextFieldExpression![CDATA[$R{bookList.id}]]/textFieldExpression/textFieldtextFieldreportElement x113 y2 width155 height20/textElementfont isBoldtrue//textElementtextFieldExpression![CDATA[$R{bookList.title}]]/textFieldExpression/textFieldtextFieldreportElement x285 y2 width100 height20/textElementfont isBoldtrue//textElementtextFieldExpression![CDATA[$R{bookList.author}]]/textFieldExpression/textFieldtextFieldreportElement x398 y2 width100 height20/textElementfont isBoldtrue//textElementtextFieldExpression![CDATA[$R{bookList.year}]]/textFieldExpression/textField/band/columnHeaderdetailband height21 splitTypeStretchtextFieldreportElement x0 y0 width100 height20/textElement/textFieldExpression classjava.lang.Integer![CDATA[$F{BOOK_ID}]]/textFieldExpression/textFieldtextFieldreportElement x113 y0 width155 height20/textElement/textFieldExpression![CDATA[$F{TITLE}]]/textFieldExpression/textFieldtextFieldreportElement x285 y0 width100 height20/textElement/textFieldExpression![CDATA[$F{AUTHOR}]]/textFieldExpression/textFieldtextFieldreportElement x398 y0 width112 height20/textElement/textFieldExpression![CDATA[$F{PUBLISHED_YEAR}]]/textFieldExpression/textField/band/detailcolumnFooterband height45 splitTypeStretch//columnFooterpageFooterband height25 splitTypeStretchtextFieldreportElement x227 y0 width100 height20/textElement textAlignmentCenter/textFieldExpression classjava.lang.Integer![CDATA[$V{PAGE_NUMBER}]]/textFieldExpression/textField/band/pageFootersummaryband height42 splitTypeStretch//summary
/jasperReport 将此文件保存在先前创建的src / main / jasperreports文件夹中您可以开始下一节了。 设计JSF视图 我们的JSF View将基于Facelets 因此它将被编写为XHTML文件在其中我们需要声明将要使用的不同库名称空间。 有关如何设置Facelets的说明请直接转到其文档 JSF 2.x应用程序无需额外配置即可直接支持Facelets。 以下代码片段显示了Facelets模板的内容我将使用它们来呈现图书清单的用户界面。 复制它并将其保存在Web应用程序内容文件中的文件中。 我将使用的文件名为/book/bookList.xhtml ?xml version1.0 encodingUTF-8?!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
html xmlnshttp://www.w3.org/1999/xhtmlxmlns:fhttp://java.sun.com/jsf/corexmlns:hhttp://java.sun.com/jsf/htmlxmlns:jrhttp://jasperreportjsf.sf.net/tld/jasperreports-jsf-1_3.tld
headtitleBook List - JasperReports JSF Use Cases/title
/head
body
h1h:outputText value#{Messages[bookList.pageTitle]}//h1divh:form idbookListFormjr:source idbookSource typejndi valuejava:comp/env/jdbc/BookStoreDB/h:panelGrid columns3h:outputLabel forreportFormat value#{Messages[report.format.select]} /h:selectOneMenu idreportFormat value#{bookList.reportFormat}onchangedocument.bookListForm.submit();f:selectItems value#{bookList.reportFormats} //h:selectOneMenujr:reportLink idreportLink format#{bookList.reportFormat}targetblank sourcebookSourcevalue/resources/reports/jasper/booklist.jasperresourceBundle#{Messages}h:outputText value#{Messages[bookList.action.show]}//jr:reportLink/h:panelGridh:dataTable value#{bookList.allBooks} varbookh:columnf:facet nameheaderh:outputText value#{Messages[bookList.title]}//f:faceth:outputText value#{book.title}//h:columnh:columnf:facet nameheaderh:outputText value#{Messages[bookList.author]}//f:faceth:outputText value#{book.author}//h:columnh:columnf:facet nameheaderh:outputText value#{Messages[bookList.year]}//f:faceth:outputText value#{book.publishedYear}//h:columnh:columnf:facet nameheaderh:outputText value#{Messages[bookList.genre]}//f:faceth:outputText value#{book.genre}//h:column/h:dataTable/h:form
/div
/body
/html 突出显示的行是我们添加JasperReports JSF插件组件的位置 首先在第14行我们通过jrsource标记定义了一个报告源组件。 该组件不会将任何数据输出到呈现HTML但是可以由库的可视组件引用以告诉他们如何获取呈现报表内容所需的数据。 从第21行到第26行我们通过jrreportLink标记定义一个报告链接组件。 该组件将输出一个标准的 HTML元素该元素指向由插件引擎生成的特殊URL。 当单击它时插件的引擎将拦截该URL并替换一些JSF生命周期阶段来处理报告数据并生成结果。 注意报表组件具有一个属性resourceBundle它指向我们在第一部分中创建的消息包。 注意 resourceBundle属性已在JasperReports JSF插件的主干版本在编写此行时中可用该版本使用标记库的1.3版本。 对于仍在使用1.2版标记库的用户他们可以获得类似的结果将参数添加到报表链接中 jr:reportLink idreportLink format#{bookList.reportFormat}targetblank sourcebookSourcevalue/resources/reports/jasper/booklist.jasperf:param nameRESOURCE_BUNDLE value#{Messages} /h:outputText value#{Messages[bookList.action.show]}/
/jr:reportLink 除了突出显示的行之外我还添加了代码以呈现一个组合框其中包含JasperReports JSF插件支持的所有导出选项以及一个数据表该数据表将为表簿布置不同的记录。 注意 组合框包含一个onchange属性该属性旨在使用报表导出选项的新值提交表单。 我必须这样做才能使报告链接在版本2.x之前的JSF中正常工作因为该版本没有任何AJAX支持。 上面显示的JSF视图需要一个托管bean才能工作该托管bean将向用户界面提供值 public class BookListView {private BookManager bookManager;private List allBooks;private String reportFormat quot;pdfquot;;public void setBookManager(BookManager bookManager) {this.bookManager bookManager;}public List getAllBooks() {if (allBooks null) {allBooks bookManager.getAllBooks();}return allBooks;}public String getReportFormat() {return reportFormat;}public void setReportFormat(String reportFormat) {this.reportFormat reportFormat;}public List getReportFormats() {FacesContext context FacesContext.getCurrentInstance();JRFacesContext jrContext JRFacesContext.getInstance(context);List list new ArrayList();for (String format : jrContext.getAvailableExportFormats()) {list.add(new SelectItem(format, format));}return list;}} bookManager字段是对接口的引用该接口将提供从数据库中获取所有书籍的逻辑 public interface BookManager {public List getAllBooks();
} 如本系列的介绍文章中所述我将不介绍实现用例所需的其他类或接口的细节因为由每个特定用户来决定哪种框架将提供应用程序的框架。 一起测试 现在该检查所有功能是否正常运行了。 因此让我们打包我们的Web应用程序将其部署到我们的Tomcat服务器上然后在您喜欢的浏览器中输入以下URL http// localhost8080 / jrjsf-usecases / book / bookList.jsf 。 注意 在执行部署操作之前Derby数据库和Tomcat应用程序服务器必须正在运行。 因此这是我们的浏览器输出前面提到的URL的内容时的外观 现在单击“显示报告”链接以查看报告的输出其中填充了我们资源包中的字符串和数据库中的数据 这是从报告的PDF视图中截取的示例屏幕截图。 使用用户界面中的组合框可以更改报告导出格式。 结论 因此总的来说这是向JavaServer Faces应用程序添加报告的最简单方法。 我从一个简单的示例开始我将不时为其添加更复杂的功能。 希望您喜欢这篇文章并回来以后的出版物好东西还没有出现 参考 JasperReports JSF插件用例–来自Code Nibbles博客的JCG合作伙伴 Alonso Dominguez的简单列表报告 。 翻译自: https://www.javacodegeeks.com/2012/07/jasperreports-jsf-plugin-use-cases-2.htmljasperreports
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92134.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!