我试图在下拉列表中显示最近三个月。我创建了一个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"> </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;
}
答案 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;">