我正在使用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模板(视图)
基础教程推荐
- jsp session.setAttribute()和session.getAttribute()用法案例详解 2023-07-30
- Mybatis-plus selectByMap条件查询方式 2023-02-04
- Java文件管理操作的知识点整理 2023-05-19
- MyBatis-Plus详解(环境搭建、关联操作) 2023-05-14
- 三行Java代码实现计算多边形的几何中心点 2023-06-23
- Spring @Transactional事务失效的原因分析 2023-05-19
- 关于JSP用户登录连接数据库详情 2023-07-30
- SpringBoot详解执行过程 2023-03-06
- springboot中使用groovy的示例代码 2023-05-18
- SpringBoot如何使用applicationContext.xml配置文件 2023-02-05