Problem with bean error
I have the following code in my jsp.
<logic:messagesPresent>
<html:messages id="error">
'<bean:write name="error" />'
</html:messages>
</logic:messagesPresent>
<logic:messagesNotPresent>''</logic:messagesNotPresent>
Most of the time this works.. but every now and then it will kick off the following error.
ERROR (InsertTag.java:922) ServletException in'/layouts/DetailLayoutGen.jsp': Cannot find bean:"error" in any scope
javax.servlet.ServletException: Cannot find bean:"error" in any scope
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
at org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:64)
at org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:745)
at java.security.AccessController.doPrivileged(Native Method)
The error is being thrown on the bean:write... but it should never even get to that line if the error bean doesn't exist? anyone seen this before or have any recomendations.
[1277 byte] By [
gmachamera] at [2007-10-3 0:45:18]

ok here is what I see as the problem.
In the snippet below the alert(oDate[x][1]); is undefined... but that is what is used to populate the display message... plus it should be using my
errors.date={0} field is not a valid date. from the application.properties file?
function validateDate(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
var formName = form.getAttributeNode("name");
//oDate = new DateValidations();
oDate = eval('new ' + formName.value + '_DateValidations()');
for (x in oDate) {
//////////////////////////////////////
if(!(form[oDate[x][0]]))
continue;
////////////////////////////////////
var field = form[oDate[x][0]];
alert("field.name="+field.name);
alert(oDate[x][0]);
alert(oDate[x][1]);
alert(oDate[x][2]);
var value = field.value;
var datePattern = oDate[x][2]("datePattern");
var delim = getDelimChar(datePattern);
if ((form[oDate[x][0]].type == 'text' ||
form[oDate[x][0]].type == 'textarea') &&
(value.length > 0) &&
(datePattern.length > 0)) {
var MONTH = "M";
var DAY = "d";
var YEAR = "y";
var orderMonth = datePattern.indexOf(MONTH);
var orderDay = datePattern.indexOf(DAY);
var orderYear = datePattern.indexOf(YEAR);
if ((orderDay < orderYear && orderDay > orderMonth)) {//MM/dd/yy 1 or 2 digits for date month , 2 or 4 digits for year , and any delimiter
if(delim == ""){
dateRegexp = new RegExp("(^\\d{1,2})(\\d{1,2})(\\d{2}|\\d{4})$");
}else{
dateRegexp = new RegExp("(^\\d{1,2})[" + delim + "](\\d{1,2})[" + delim + "](\\d{2}|\\d{4})$");
}
matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[2], matched[1], matched[3])) {//validate day month year
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
}
else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else if ((orderMonth < orderYear && orderMonth > orderDay)) {//dd MM yy
dateRegexp = new RegExp("(^\\d{1,2})[" + delim + "](\\d{1,2})[" + delim + "](\\d{2}|\\d{4})$");
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[1], matched[2], matched[3])) {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else if ((orderMonth > orderYear && orderMonth < orderDay)) {// yy/MM//dd
//dateRegexp = new RegExp("(^(\\d{2}|\\d{4})[" + delim + "](\\d{1,2})[" + delim + "]\\d{1,2})$");
if(delim == ""){
dateRegexp = new RegExp("^(\\d{2}|\\d{4})(\\d{1,2})(\\d{1,2})$");
}else{
dateRegexp = new RegExp("^(\\d{2}|\\d{4})[" + delim + "](\\d{1,2})[" + delim + "](\\d{1,2})$");
}
matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[3], matched[2], matched[1])) {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}