2012-02-09 143 views
-2

我有以下代码:显示当前日期

<html><body> 
<script type="text/javascript"> function date1(){ 
    ???? 
    alert(<%=d%>);}</script> 
<input type="button" value="date" onclick="date1()"/> 
</body></html> 

取而代之的是????的,究竟会出现每次我按下按钮当前日期?

  1. <%String d = (new Date()).toString())%>
  2. <%String d = "new Date()"%>
  3. <%= Date d = new Date() %>;
+1

这是一项家庭作业吗?还是测试? – Oded 2012-02-09 20:17:24

+0

为什么不试试?你知道你想放在那里吗?你有什么问题吗? – kosa 2012-02-09 20:17:27

+0

如果您需要服务器的日期,请使用ajax。如果可以是客户的日期,则使用javascript日期。 – 2012-02-09 20:18:32

回答

3

由于这是家庭作业,我给你一个解释没有明确说明哪些选项是正确的:

请记住,当请求/服务的JSP任何服务器端Java代码将只在点上运行,基本上是生成将输出到浏览器的文本。在与警报行的代码:

alert(<%=d%>); 

将输出服务器端(JAVA)的alert语句的括号之间d变量的内容。所以正确答案是哪一个每个按钮被点击时会得到一个新的JavaScript日期,所以你需要在这个输出到浏览器的工作是哪一个结果:

alert(new Date()); 

的答案只有一个确实是。

注意:如果你不能弄明白,试着用每个答案实际运行代码,看看哪些工作。我想你会发现其中一个答案产生无效的JavaScript,一个产生服务器端编译错误,另一个产生作用。

1

这是你在找什么呢? 您不需要JSP进行此类操作。

1.第一个选项会产生编译错误,因为Date无法解析为类型(您需要在jsp上使用import语句)并且应该删除1个右括号。如果你修复这个选项会产生静态代码如下

alert(Thu Feb 09 22:20:08 CET 2012); 

因为JavaScript需要“来标记字符串这将产生‘丢失)后的参数列表’,将无法正常工作。

2.second选项是正确的(就像nnnnnn说),因为静态代码将看起来像

alert(new Date()); 

而且因为日期也是JavaScript函数的代码会显示警告窗口日期。

3.third选项完全搞砸了,因为<%=意味着“打印”,因此“Date d =”是语法错误。

+0

这是我家庭作业的一个问题..我不能改变泰码 – kakush 2012-02-09 20:21:58

+0

然后没有。 1是正确的,第二行将打印“新日期()”,最后一个是不正确的,因为分号。 – darek 2012-02-09 20:28:59

+1

在第二个答案 - 你注意到它是警报(<%=d%>)而不是警报(d)? – kakush 2012-02-09 20:35:21