Bean没有在jsp上工作

时间:2016-12-13 16:19:10

标签: javascript java jsp

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

$('#tablediv tr:eq(3)').prepend('<td>$text1</td>').html(); this does not work. 

但是现在我试图从Java Bean中获取日期。但是,尽管我已经放入了Java中的log.info,但日期不再显示且根本没有日志。

在我的Jsp页面中:

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

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

<%@ 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>

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

1 个答案:

答案 0 :(得分:1)

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

  • 找不到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>