0
我有以下Spring xml文件,用于为不同的文件格式生成不同的视图。我有两个属性url和datasource。我希望在运行时更改url,即我想使用不同的jrxml
文件,而不仅仅是一个静态文件。如何在运行时更改以下bean属性?
<bean id="pdfReport"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView"
p:url="classpath:tree-template.jrxml" p:reportDataKey="datasource" />
<bean id="xlsReport"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsXlsView"
p:url="classpath:tree-template.jrxml" p:reportDataKey="datasource" />
<bean id="htmlReport"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsHtmlView"
p:url="classpath:tree-template.jrxml" p:reportDataKey="datasource" />
<bean id="csvReport"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsCsvView"
p:url="classpath:tree-template.jrxml" p:reportDataKey="datasource" />
非常感谢您的回复。我使用了下面的代码:JasperReportsPdfView view =(JasperReportsPdfView)applicationContext.getBean(“pdfReport”); \t \t view.setUrl(“D:\\ Jasper JRXML \\ Template.jrxml”); \t \t modelAndView = new ModelAndView(view,parameterMap);但是,这是一个spirng豆的观点并没有改变。我正在使用MVC模式。 – phoenix
@BRS啊,似乎那些贾斯珀报告视图加载他们的资源形式的URL,当他们被创建并在其生命周期期间重新使用。您将需要创建一个新的bean来使用不同的模板。 –
因此,对于每个报告,我都应该有一个单独的类,并在需要时通过设置jrxml和数据源来创建bean。那么DI在这里有多有用? – phoenix