【问题标题】:Annotating Spring view class注释 Spring 视图类
【发布时间】:2013-01-22 21:39:27
【问题描述】:

我有一个类扩展了 Spring 的 AbstractExcelView 类,它呈现一个 XML 文件。在这个类中,我正在注入我的 Service bean 以供使用。我正在自动装配和组件扫描我的类,我也想对这个视图类做同样的事情,但我不清楚如何(或者是否可以这样做)。这是我试图从配置中注释的内容:

<bean id="export.xls" class="com.my.views.ReportExcelView">
<property name="url">
    <value>/excel/template</value>
</property>
<property name="service" ref="testingService"/>

我可以用@Component 注释类,用@Autowired 注释服务,但我不知道注释URL 的策略。我真正想做的是在 buildExcelWorkbook() 调用中调整它(基于请求中的某些内容),但似乎在此之前完成了一些初始化,因为我在尝试使用我的 excel 模板时遇到错误表示它没有 Excel 工作表句柄的方法。有什么建议吗?

【问题讨论】:

    标签: java spring view annotations


    【解决方案1】:

    所以您的 ReportExcelView 现在可能看起来像这样。确保使用@Resource 连接一个简单的字符串。

    package com.ex.springbasicex.view;
    @Component
    public class ReportExcelView{
        @Resource(name="myUrl")
        String url;
    
        @Autowired
        Service service;
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    }
    

    您的上下文配置可能应该类似于下面使用扫描的内容。下面是如何设置 myUrl String 资源。

    <context:component-scan base-package="com.ex.springbasicex.view"  />
    <bean id="myUrl" class="java.lang.String" >
        <constructor-arg>
            <value>/excel/template</value>
        </constructor-arg>
    </bean>
    

    【讨论】:

    • 由于字符串 url 实际上在基类上,我只是用 @Resource 注释了 setUrl 并且它起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多