JSP 如何實現選擇性引入頁面?

2020-03-12 23:00:10 +08:00
 VKRUSSIA

想實現的僞代碼如下,會報錯

`<%

if(new Date().getHours()>17){ <%@ include file="night.jsp"%> }else{ <%@ include file="day.jsp"%> } %> `

有什麽方案實現嗎?

1890 次点击
所在节点    Java
7 条回复
Tomotoes
2020-03-12 23:12:24 +08:00
```jsp
<% if (new Date().getHours() > 17) { %>
<%@ include file="night.jsp" %>
<% } else { %>
<%@ include file="day.jsp" %>
<% } %>
```
SoloCompany
2020-03-13 01:17:15 +08:00
include 是编译阶段处理而非运行时,要真正条件 include 应该使用 dispatcher 或 <jsp:include 或者 tagfile 是更好选择
hantsy
2020-03-13 01:42:49 +08:00
远古时代的代码啊,还内嵌 Java 代码的,隐约感觉这种代码形式是快 20 年了。大学时候好流行,PHP,ASP,JSP 都是这样的。

2003 年 JSP 2.0 后就可以完全使用 XTHML 来写 JSP 了。7,8 年没见过 JSP 代码了。
jiom
2020-03-13 09:12:39 +08:00
@hantsy 您看看现在 zf、gq 网站,也真的多 j2ee 的呢,不瞒您说我手上就有,现在解决办法都是保持原有不变,再撘一套新系统,然后直接连接过去改不动了我接手的时候~
ice2neet
2020-03-13 10:45:16 +08:00
JSP 应该都是很久的之前的旧项目了吧 新项目没人用吧
hantsy
2020-03-13 11:19:59 +08:00
@jiom 项目只要是一直有人在更新和维护,技术栈同样可以一起更新。这说来说去是人的问题了,保持不变才是最大的问题。
hantsy
2020-03-13 11:30:45 +08:00
@ice2neet JSP 2.0 后面的感觉还好,页面是通过 XSLT 转换的,和现在的模板引擎差不多,大概就这个样子,Spring 扩展了自己一套 JSTL,写起来还是方便,https://github.com/hantsy/spring4-sandbox/blob/master/mvc-tiles3/src/main/webapp/WEB-INF/views/add.jspx,这种即使将来换到 Thymeleaf 模板也不难,代码逻辑几乎不用改的。

1.x 内嵌 java 代码的形式,运行时首先还是转换成 Java Servlet 代码,再编译成 Class 的,所以第一次执行很慢,而且一般运行环境还需要 JDK 才能运行。Tomcat 大概从 5.5 左右自带了 Eclipse 的 Compiler,这才可以换成用 JRE 来运行。另外我遇到的一个问题,记得 JSP 在各 Servlet 容器上编译结果差别很大,当时我开发时还比较喜欢用 Resin,发现相对语法要求没那么严格,切换到 Tomcat 发现很多 JSP 页面都会异常。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX