想實現的僞代碼如下,會報錯
`<%
if(new Date().getHours()>17){ <%@ include file="night.jsp"%> }else{ <%@ include file="day.jsp"%> } %> `
有什麽方案實現嗎?
1
Tomotoes 2020-03-12 23:12:24 +08:00 1
```jsp
<% if (new Date().getHours() > 17) { %> <%@ include file="night.jsp" %> <% } else { %> <%@ include file="day.jsp" %> <% } %> ``` |
2
SoloCompany 2020-03-13 01:17:15 +08:00 via iPad
include 是编译阶段处理而非运行时,要真正条件 include 应该使用 dispatcher 或 <jsp:include 或者 tagfile 是更好选择
|
3
hantsy 2020-03-13 01:42:49 +08:00
远古时代的代码啊,还内嵌 Java 代码的,隐约感觉这种代码形式是快 20 年了。大学时候好流行,PHP,ASP,JSP 都是这样的。
2003 年 JSP 2.0 后就可以完全使用 XTHML 来写 JSP 了。7,8 年没见过 JSP 代码了。 |
4
jiom 2020-03-13 09:12:39 +08:00
@hantsy 您看看现在 zf、gq 网站,也真的多 j2ee 的呢,不瞒您说我手上就有,现在解决办法都是保持原有不变,再撘一套新系统,然后直接连接过去改不动了我接手的时候~
|
5
ice2neet 2020-03-13 10:45:16 +08:00
JSP 应该都是很久的之前的旧项目了吧 新项目没人用吧
|
7
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 页面都会异常。 |