I just typed up a huge long post about Julie and I's car-shopping experience yesterday, and just as I was about to hit submit, Phoenix crashed! Friggen browser. It crashes a fair amount too, just never when I had a page worth of data ready to go. I did get a screen shot of about half of it though, so I'll attempt to reproduce it tomorrow. Sucks though - Mozilla and IE never crash, maybe it's time to go back.
I got some advice from Max Anderson (via hibernate-devel mailing list) for implementing the following methods in a BaseObject class for my hibernate objects (or any objects FTM):
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
public int hashCode(Object o) {
return HashCodeBuilder.reflectionHashCode(this);
}
Boy, that sure makes things easier, huh? Especially when you compare the toString() method to my old one:
public String toString() {
StringBuffer results = new StringBuffer();
Class clazz = getClass();
results.append(getClass().getName() + "\n");
Field[] fields = clazz.getDeclaredFields();
try {
AccessibleObject.setAccessible(fields, true);
for (int i = 0; i < fields.length; i++) {
results.append("\t" + fields[i].getName() + "=" +
fields[i].get(this) + "\n");
}
} catch (Exception e) {
// ignored!
}
return results.toString();
}
They both use reflection, but my old one might catch security excaptions. The Javadocs for HashCodeBuilder warn us about this problem:
Alternatively, there is a method that uses reflection to determine the fields to test. Because these fields are usually private, the method, reflectionHashCode, uses Field.setAccessible to change the visibility of the fields. This will fail under a security manager, unless the appropriate permissions are set. It is also slower than testing explicitly.
I'll be using these on Tomcat and I'll let you know if I run into any problems.
I can't seem to get the border-collapse property to work on my tables. Basically, I should be able to specify a border and border-collapse: collapse on a table and this border will be applied to all cells. But I can't get it to work - any ideas? Here's an example:
<table width="300"
style="border: 1px solid black; border-collapse: collapse">
<tr>
<th> </th>
</tr>
<tr>
<td>this cell should have a top border<td>
</tr>
</table>
And here's that same table without the HTML escaped:
| |
| this cell should have a top border |