我正在使用Java和Spring MVC开发应用程序.像往常一样,将一个JSP文件存储在/ WEB-INF / view /文件夹中,该文件用作所有请求的View.通常我们有这个JSP硬编码,也有一些代码来处理模型(标签和EL).事情一直很好,直到这一...
我正在使用Java和Spring MVC开发应用程序.像往常一样,将一个JSP文件存储在/ WEB-INF / view /文件夹中,该文件用作所有请求的View.
通常我们有这个JSP硬编码,也有一些代码来处理模型(标签和EL).事情一直很好,直到这一点.
现在我不想对JSP进行硬编码,而是想从数据库中动态填充这个JSP文件.因此,用户可以上传并选择不同的模板/主题/布局来显示他的页面.
这是解释我想要做什么的代码(我知道这不是方法,而只是为了说明目的).
/WEB-INF/views/index.jsp
<%@ page import="com.example.domain.Template" %>
<%@ page import="com.example.dao.TemplateStore" %>
<!-- Following code is supposed to return complete JSP template from the database as uploaded by the user. -->
<%= TemplateStore.getUserTemplate("userTemplate") %>
我在网上搜索了这个主题,却找不到任何东西.
任何有关如何实现这一目标的帮助将受到高度赞赏.
提前致谢.
重要提示:我几天前曾问过这个问题,但有些成员称之为“非主题”.我还没理解这个问题是如何脱离主题的 – https://stackoverflow.com/questions/18026092/creating-content-of-jsp-views-in-web-inf-views-dynamically-from-the-database.
解决方法:
如果要从数据库中动态获取视图模板,则不应考虑JSP. JSP被编译成servlet类,并且除了标准方式(webapp根目录下的某个静态文件)之外,几乎不支持这样做.
因此,只考虑将视图技术(至少对于动态部分)切换到某些通用的模板库,如Velocity或Freemarker.这带来了安全奖励,因为在这样的模板中,可以从JSP中删除的内容少于JSP中的内容.码.
您甚至可以支持多种视图技术(可能是Spring MVC支持开箱即用的任何东西,JSP除外),并允许您的用户在上传时选择模板类型.
然后你可以编写一个自定义视图解析器,它将使用用户选择的模板委托给相应的标准解析器(Velocity,Freemarker,XSLT,等等……).
但是,如果JSP是一个很难的要求,我想JSP的一个丑陋的解决方法(它应该在任何servlet容器中工作)可能是从数据库中获取内容并创建一个实际的文件(如WEB-INF / templates / ${primarky-键爆炸的webapp根目录下的key} .jsp),然后是RequestDispatcher.forward().
本文标题为:java – 从数据库动态创建JSP模板(视图)
- 使用maven方式创建springboot项目的方式 2023-06-01
- 基于Java语言的递归运算例题详解 2023-03-22
- Spring boot 使用QQ邮箱进行一个验证登入功能 2023-06-16
- Java创建随机数的四种方式总结 2023-03-21
- SpringBoot整合ActiveMQ的详细步骤 2023-07-01
- java8中的lambda表达式简介 2023-01-29
- Hystrix Turbine聚合监控的实现详解 2023-05-08
- jsp 生命周期详细介绍 2023-08-01
- JSP自定义标签案例分析 2023-08-03
- Spring Boot日志的打印与持久化详细解析 2023-03-11