Body onload创建空白页面

时间:2012-07-05 05:45:58

标签: javascript jsp java-ee struts

我试图在下拉列表中显示最近三个月。我创建了一个JavaScript函数,并在body元素的Onload属性中调用它,但是我得到的是一个空白页,日志中没有错误。

以下是JSP:

<%@ page import="java.util.Collection" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

<%@page buffer="16kb"%>


<script type="text/javascript">
function addOption(selectbox,text,value )
{
    var optn = document.createElement("OPTION");
    optn.text = text;
    optn.value = value;
    selectbox.options.appendChild(optn);
}

function OnloadPage()
{
    alert('Here');
    var date=new Date();
    addOption(document.forms[0].month,date.getMonth(),date.getMonth());
    addOption(document.forms[0].month,date.getMonth()-1,date.getMonth()-1);
    addOption(document.forms[0].month,date.getMonth()-2,date.getMonth()-2);
    }
</script>
<TABLE class="ReportFilter">

        <TR>
            <TD colspan="2">&nbsp;</TD>
        </TR>
</TABLE>
<body onload="OnloadPage()">
<html:form action="/zeroScoreReport.do">

<html:select property="month" name ="month" style="width:175;">
    <html:option value="-1">--Please Select--</html:option>
</html:select>
    <display:table name="scoreCardCol" pagesize="20" sort="list" id="data" requestURI="" class="tablelist" export="true">
            <display:setProperty name="export.csv" value="false"/>
        <display:setProperty name="export.xml" value="false"/>
        <display:setProperty name="export.excel.filename">ZeroDefectScoreCard.xls</display:setProperty>

            <display:column title="ZONE" property="zone" /> 
            <display:column title="TM OPS NAME" sortable="true" property="tm_ops_name"></display:column>
            <display:column title="RPCT BRANCH CODE" sortable="true" property="rcpt_branch_code"></display:column>
            <display:column title="SUM TOT APP" sortable="true" property="sum_totapp"></display:column>
            <display:column title="SUM ERROR APP" sortable="true" property="sum_error_app"></display:column>
            <display:column title="SUM ZERO DEF APP" sortable="true" property="sum_zero_def_app"></display:column>

    </display:table>
</html:form>

编辑:更改了一些代码后,现在我在日志中收到以下错误:

ServletException in '/jsp/zero/frm_ZeroScoreCard.jsp': javax.servlet.jsp.JspException: Cannot find bean under name month
org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/zero/frm_ZeroScoreCard.jsp at line 38

尽管添加了表单bean:

private String month="";
public String getMonth() {
        return month;
    }
    public void setMonth(String month) {
        this.month = month;
    }

3 个答案:

答案 0 :(得分:1)

在此处将add更改为appendChild

selectbox.options.add(optn);

所以它应该是:

selectbox.options.appendChild(optn);

答案 1 :(得分:0)

添加<script type="text/javascript">而不是<script>

可能会有不同的错误,例如html标记未在您的网页中使用 请提供完整的JSP检查和您测试的浏览器

答案 2 :(得分:0)

name中的

<html:select>属性应该是formbean的名称,并且在javascript中引用它,应该使用styleId

所以代码看起来像

<html:select styleId="monthh" property="monthh" name ="initiationfrm" style="width:175;">