Better framework for a simple user interface with multiple configurations

I want to make a choice (Java based) for UI development with the following constraints:

  • The application requires a very simple interface (a form with 1 or 2 buttons results in a list of images, texts, etc.), but the actual types of interface elements displayed are numerous.
  • We already have the backend logic (as a web service) implemented the way we want it.
  • Important to matter
  • We would like to have extensibility points (in the future) to allow external developers to change the look and feel of the user interface without having to build, compile, and render the entire application, or even the entire interface.
  • The performance and scalability of the UI layer is important, but we are not expecting 100tps per machine and the backend is likely to be the bottleneck anyway
  • Ease of maintenance is critical.
  • Support for easy internationalization
  • (and this is a bit unique), we may want some UI components to render differently based on browser capabilities, browser version, etc. However, we want to hide this fact from developers who create any particular screen (as far as possible).

So far, our best options are Tapestry and JSF (with Facelets perhaps). I've read past discussions here such as Best Web Application Framework for Java? but they don't seem to touch on my specific points. Any advice?

0


source to share


6 answers


One of the main things to think about is what you expect. if it is a web application, you tend to do well with a choice that is built on JSP because it is easy to modify and can be modified by designers.

Update



"How easy is it to change?" I was asked. Basically, there are two things in JSP that make it easy to change: it is a rich platform, in the sense that you can write relatively little JSP compared to, say, write your own servlets and write servlets to create unified, consistent HTML; second, since most JSPs look more like boilerplate HTML than Java code, you can let designers click freely on it. This means that all the fussy design decisions can be made by the designers, rather than having the designer do it, show it to the coder, ask him to recode the code and then return the results to the designer.

+1


source


IMO, Stripes is also a viable option. Stripes is a presentation framework for building web applications using the latest Java technologies. Because, as you mentioned, you already have the whole frontend and you only need the UI Framework.

Spring MVC, Seam, Struts are not suitable here.



JSF is a good choice, but it has a pretty learning curve. I don't find it too difficult, but people usually complain a lot about it, and I've seen that developers don't understand the philosophy very well. The advantage is that there are many developers there. I still recommend at least taking a look at Stripes .

+1


source


We also cover Grails in Groovy, although I'm less familiar with the RoR-style approach to web development. I also looked at Spring mvc but I'm not sure if I liked this for my use case. A straight jsp based solution is obviously an option, but it will take any cleverness from us and can lead to ugly "code inside jsp pages" that is unattainable, so I hesitate to do just that.

0


source


Since you have web services, GWT and Flex are viable. Flex is specifically designed to use web services as a service layer.

0


source


Try Wicket. You will never look back.

  • Component based architecture.

  • Developing in a pure Java gateway bothers all AJAX / Javascript

  • Markup inheritance goes hand in hand with class inheritance - you use for reuse at the class level - be prepared for reuse at the HTML level.

  • Perfect separation of concerns. HTML is valid HTML and therefore can be edited in ANY HTML editor. Allows web designers to create the look and feel in HTML / CSS, while the developer oversees the Java coding. Unlike JSP, Java can never find it in the presentation layer - that's great!

0


source


Try (μ) Micro: http://micro-docs.simplegames.ca/ . It is open source and the code is available at Github

Let me know if you have any questions, I'm the author.

0


source







All Articles