当前位置: 首页 > 知识库问答 >
问题:

spring-boot-web应用程序上的静态内容可以动态(刷新)吗?

盖向荣
2023-03-14

我仍然在寻找这个主题,但我找不到一个简单的解决方案,我不确定它是否存在。

第1部分

>

  • 我的应用程序中有一个服务,它通过动态数据库数据生成excel文档。

     public static void 
     notiSubscribersToExcel(List<NotificationsSubscriber> 
     data) {
     //generating the file dynamically from DB's data
    
     String prefix = "./src/main/resources/static";
     String directoryName = prefix + "/documents/";
     String fileName = directoryName + "subscribers_list.xlsx";
    
     File directory = new File(directoryName);
     if (! directory.exists()){
         directory.mkdir();
         // If you require it to make the entire directory path including parents,
         // use directory.mkdirs(); here instead.
     }
    
     try (OutputStream fileOut = new FileOutputStream(fileName)) {
    
         wb.write(fileOut);
         fileOut.close();
         wb.close();
    
     } catch (FileNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }
    

      null

    顺便说一下,我找到了这个答案和其他做配置的方法,或web服务,但我不想要所有这些。而且我试过其中一些,但结果是一样的。

    仅供参考的是,我没有将客户端应用程序与服务器应用程序捆绑在一起,我从不同的主机上运行它们

  • 共有1个答案

    史宸
    2023-03-14

    问题是从Spring应用程序下载包含动态内容的文件。

    这可以用Spring Boot解决。如下图所示的解决方案--当我单击下载报告时,我的应用程序将生成一个动态Excel报告,并将其下载到浏览器中:

    从JS向Spring控制器发出get请求:

    function DownloadReport(e){
    
         //Post the values to the controller
         window.location="../report" ;
    }
    
     @RequestMapping(value = ["/report"], method = [RequestMethod.GET])
        @ResponseBody
        fun report(request: HttpServletRequest, response: HttpServletResponse) {
    
           
            // Call exportExcel to generate an EXCEL doc with data using jxl.Workbook
            val excelData = excel.exportExcel(myList)
            try {
    
                // Download the report.
                val reportName  = "ExcelReport.xls"
                response.contentType  = "application/vnd.ms-excel"
                response.setHeader("Content-disposition", "attachment; filename=$reportName")
                org.apache.commons.io.IOUtils.copy(excelData, response.outputStream)
                response.flushBuffer()
    
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    
     类似资料:
    • 问题内容: 我正在评估用于构建Web应用程序的Spring MVC&Boot和AngularJs。我遇到了一个问题,当我修改静态内容(html,js,css)时,每次都必须重新启动应用程序。我希望有某种解决方法,因为重新启动整个应用程序以进行静态内容更改效率不高。我尝试过的所有其他Web应用程序框架都允许即时更新静态内容文件(甚至只是Spring MVC和普通的旧WAR应用程序)。 我已经从“使用

    • 我正在评估用于构建web应用程序的Spring MVC&Boot和AngularJs。我遇到的问题是,当我对静态内容(html、js、css)进行修改时,每次都必须重新启动应用程序。我希望有某种方法可以解决这个问题,因为重新启动整个应用程序进行静态内容更改并不高效。我尝试过的所有其他web应用程序框架都允许动态更新静态内容文件(即使只是Spring、MVC和普通的WAR应用程序)。 我从“使用Sp

    • 我正在尝试启动索引。我的spring boot应用程序中的html,但请参见404。我缺少什么依赖关系? 建筑gradle(多项目) 项目结构: 应用程序类别:

    • 我正在使用Spring Boot,并试图使我的静态资源(CSS,JS,字体)在部署时可用。源代码可供您查看或从https://github.com/joecracko/StaticResourceError.克隆 现在我的CSS、JS和字体文件对我部署的网站不可见。 下面是我的项目目录结构: 下面是编译后的JAR的根目录:我向您保证,这些文件存在于各自的文件夹中。 以下是我看到的网络错误: 以下是

    • 现在,我有一个简单的Spring Boot应用程序,它为静态图像提供服务,我将这些图像放在了resources/static/img中。这对于显示实际内容来说很好,但我想解决两件事: > 我不希望这些图像中的任何一个与生成的文件捆绑在一起,我知道将这些图像放在文件夹中会做到这一点。 使用我当前的设置,为了在webapp上看到新图像,我必须将其添加到文件夹并重新启动。相反,我希望Spring提供特定

    • 我有一个独立的Spring Boot应用程序,其中模板位于/src/main/resources/templates中,静态内容位于/src/main/resources/static中。我希望在身份验证之前可以访问静态内容,因此CSS也会加载到登录页面上。现在它只在身份验证后加载。我的安全配置如下所示: