javascript - Bean 无法在 jsp 上运行

标签 javascript java jsp

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

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

但现在我尝试从 Java Bean 获取日期。然而,尽管我已经将 log.info 放入了 Java 中,但日期不再显示,也根本没有日志。

在我的 Jsp 页面中:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@page import="com.my.package.DateRenderer"%>
<jsp:useBean id="DateRenderer" scope="application" 
    class="com.my.package.DateRenderer"/>
...
    <script language="Javascript">
        //objDate = new Date(); //old way
        objDate = DateRenderer.getDayDate(); //new way
        document.write(objDate.getDate());
    </script>

在我的 Java 类中,我尝试调用的方法是静态的:

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();
    }
}

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

最佳答案

感谢问题的评论,我终于找到了答案。

  • 未找到 DateRenderer,因为它是服务器端而非客户端。 Scriptlet 可以获取服务器端变量(由于本项目中的一些复杂原因,我无法使用 EL)。
  • DateRenderer.getDayDate() 没有返回任何内容,因为我没有正确捕获它。

解决方案如下:

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

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

关于javascript - Bean 无法在 jsp 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125755/

相关文章:

javascript - 移除渲染组件时的 Vue 内存泄漏

javascript - Trufjs 上的 *pointsWithinPolygon*

java - 想要在java中改变我的笔的颜色

java - 无法在jsp中下载.xlsx文件

mysql - 使用java分页

javascript - CSS z-index 和变换奇怪的 flash

javascript - 如何找到给定时间的星期一?

java - 关于yield()的一些疑问

java - 如何跳过文本文件的前 3 行?

java - 语法错误,插入 "}"来完成 block