Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bean不在jsp上工作_Javascript_Java_Jsp - Fatal编程技术网

Javascript Bean不在jsp上工作

Javascript Bean不在jsp上工作,javascript,java,jsp,Javascript,Java,Jsp,我有一个JSP,它使用Javascript在页面上显示日期。日期是这样创建的: <script language="Javascript"> objDate = new Date(); document.write(objDate.getDate()); </script> 看起来无法解析DateRenderer,但未显示任何异常。我错过什么了吗?我对jsp没有太多经验。多亏了问题的评论,我终于找到了答案 未找到日期呈现程序,因为它是服务器端而不是客户

我有一个JSP,它使用Javascript在页面上显示日期。日期是这样创建的:

<script language="Javascript">
    objDate = new Date();
    document.write(objDate.getDate());
</script>

看起来无法解析DateRenderer,但未显示任何异常。我错过什么了吗?我对jsp没有太多经验。

多亏了问题的评论,我终于找到了答案

  • 未找到日期呈现程序,因为它是服务器端而不是客户端。Scriptlet可以获取服务器端变量(在这个项目中,由于一些复杂的原因,我无法使用ELs)
  • DateRenderer.getDayDate()没有返回任何内容,因为我没有正确捕获它
解决方案如下:

<%@page import="com.my.package.DateRenderer"%>
[...]

<div id="somediv">
    <script language="Javascript">
        <%
        String dayDate = DateRenderer.getDayDate();
        %>
        document.write('<%=dayDate%>');
    </script>
</div>

[...]
文件。写(“”);

您正在混合服务器和客户端代码。DateRenderer是Java的一个服务器对象,objDate是浏览器中的一个Javascript变量。我已经看到我可以使用
objDate
从服务器端获取变量,服务器端方法确实会命中(日志用于证明)。但是,页面仍然不显示日期。这是否可能是因为调用javascript时页面已经显示(并且页面未刷新)?尝试将值设置为
隐藏输入
字段
,然后使用其id字段在javascript中访问它,或者尝试
警报(${variable}”)
警报(“”)
public class DateRenderer {
    private static final Log log = LogFactory.getLog(DateRenderer.class);

    public DateRenderer(){
    }

    public static Date getDayDate(){
        log.info("New Date for test!");
        return new Date();
    }
}
<%@page import="com.my.package.DateRenderer"%>
[...]

<div id="somediv">
    <script language="Javascript">
        <%
        String dayDate = DateRenderer.getDayDate();
        %>
        document.write('<%=dayDate%>');
    </script>
</div>