Originally posted by Gregg Bolinger:
All my projects are managed via very simple Ant scripts and sometimes Cruise Control added on top of that. I create a context for my webapp that points to where I want it to point to for all my resources. I work in a realistic working "deployed" webapp.
<snip>
I can go into more detail if you would like. Fill free to contact me outside of the forums or start a new discussion.
Originally posted by Gregg Bolinger:
Being a Sun standard doesn't mean anything. JDO was a Sun standard. So is EJB2 and look what a mess that is. Sun did something half right by going with JPA for EJB3. (they should have just let Hibernate fill the role by itself).
What you should be looking at is simply what will be the best tool for the job.
That's the beauty of choices. You can nearly find a good fit for any project. Can't say that about .NET.
I'm not saying that JSF isn't a good choice for you. It may be. But touting it as a Sun standard is not a good reason to make that decision. Make that decision because architecturally JSF fits with your project(s) needs and solves the problems presented.
So tell me, what IDE is going to support the implementation of JSF you choose? And is that IDE going to fit the needs of the development group? Just pointing out that IDE support isn't necessarily a good reason to choose a framework either. Sure, it can matter, but should it be a deciding factor? I don't think so. Personally, I'm am the most productive with IntelliJ IDEA in any given framework I need to work in. I can't stand D&D generated code. If my IDE supports JEE development, I'm gold. I understand that some people need a bit more hand holding however, and that is their decision.
Originally posted by Dave Brown:
Ask yourself first if your really need to use a framework. The only additional 'frameworks' or perhaps tools is a better word in my web apps have been using are hibernate and sometimes spring, displaytag for my tables, and other more specific tools like iText for pdf generation.
The requirement for a framework like Struts/JSF, even spring MVC hasnt become obvious to me yet although part of me is wanting an opportunity to get my teeth into one of the frameworks simply because when I look at the J2EE job market, it seems most high paying financial companies are asking for those skills.
Originally posted by Hung Tang:
Okay, now I kind of get what's the problem. Yes, Seam does solve this problem quite elegantly using conversations. If you are using MyFaces, there's a Tomahawk component called saveState that will be of interest to you:
http://myfaces.apache.org/tomahawk/uiSaveState.html
The user object will be saved/restored for longer than a request.
Originally posted by Hung Tang:
Andy,
I understand your concerns about JBoss. Took me quite awhile before delving into Seam. However, Seam supports Tomcat, and Glassfish out-of-the-box, and I have been using it with Tomcat for development as I have yet gone to the EJB3 route. As for Spring support, you'll be happy to hear that in the very near future, they will be adding full support for Spring integration.
Originally posted by Hung Tang:
The backing bean IS the entity bean. So if you load a Person entity, despite your choice of not displaying a visible Person.ArchiveDate modification, the bean itself stills holds a value for Person.ArchiveDate due to the load, and not NULL as you claim. Am I missing something? In the example I posted, if I took out the option to edit the "website" of a user, everything will still work.
Originally posted by Hung Tang:
I'll add some of my thoughts. My assumption is that you are using EJB3 Entity/JPA/Hibernate for persistence.
...
Why is MyBean.Person is in an unknown state? If you perform an edit, you first do a load, and whatever changes you make to it will get updated in the underlying data store when the changes are finally flushed. You wouldn't use JSF to overlay the new values, but instead you use Hibernate's Session or JPA's EntityManager merge() to update the new values. It's pretty straightforward for an add. In each case, you know the state of your Person object.
This is analogous to using Data Transfer Objects (DTO), which increases lines of code, and maintenance effort. It just makes a lot more sense to use entities as backing beans themselves.
Originally posted by Hung Tang:
How about JSF -> JPA -> DB? Yes, it's possible. Take a look at Seam. That's the "glue" you are looking for. Mind you, it takes a little investigation, but once you get it, I think it provides the answer you are looking for.
I have given an example using Seam showing this "glue" in action at http://jroller.com/page/hstang?entry=seamless_transition
Hung