Nope, no need to pass the transaction object to the DAO. That's a nasty anti-pattern.
The most common approach, and simplest, is the open session in view type of approach, where the transaction is started as soon as the request comes in, and committed just before the response goes out. The tx context is automatically passed to the DAO objects through the transactional context. It's all very nifty!
Here's a little tutorial I put together on using advanced DAOs. It applies to Struts, but I think I just demonstrate with simple Servlet and JSP apps:
http://jpa.ezhibernate.com/Javacode/lea ... vanceddaos