我有一个 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/