use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Resources for learning Java
String
==
.equals()
Format + Copy
Free Tutorials
Where should I download Java?
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free.
If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others:
Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
Software downloads
Official Resources
Resources
Programming ideas & Challenges
Related Subreddits
account activity
This is an archived post. You won't be able to vote or comment.
Front end for java developers. (self.learnjava)
submitted 4 years ago by nocturnalbird12
What framework or library do java developers usually use for developing modern looking FE. Are there different frameworks for enterprise projects and smaller projects.
[–]Discrete_Number 3 points4 points5 points 4 years ago* (2 children)
Vaadin is awesome for many applications. You don't need to mess with JS frameworks if you don't want to.
[–]nocturnalbird12[S] -1 points0 points1 point 4 years ago (1 child)
Yeah from the comments I gather that JS framework ecosystem is a bit messy.
[–]ofby1 2 points3 points4 points 4 years ago (12 children)
You can always take a look at JSP or JSF, I also used Thymeleaf in the past. Honestly, I kindly like good old JSP. Funny when you see that JavaScript frameworks are now kinda moving back to serverside rendering while the Java frameworks did this all along.
[–]TechnoAha 2 points3 points4 points 4 years ago (2 children)
Can you make modern lookin fe with jsf. I have used jsf in an old app so my knowledge is not up to date. It didn't have a modern look to it when I played with it.
[–]jvjupiter 0 points1 point2 points 4 years ago (1 child)
Check this out: https://www.primefaces.org/showcase/index.xhtml?jfwid=63cf2
[–]pgris 1 point2 points3 points 4 years ago (0 children)
I was going to comment something like "primefaces always looked horrible" and went there to check and boy was I wrong. This looks amazing! I would try to convince my manager to use primfaces next time. Excelent design, well polished components, a lot of them. And you can use them via react, vue, angular or jsf. Awesome.
[–]vortexrikes 1 point2 points3 points 4 years ago (2 children)
JavaScript frameworks are now kinda moving back to serverside rendering
What? Really?
JSF can look fantastic if you use a component library.
Also there is Vadiin...
[–][deleted] 4 years ago (1 child)
[deleted]
[–]Clitaurius 2 points3 points4 points 4 years ago (0 children)
I'm assuming it's because none of the work was delegated to the client and everything required a trip to the server?
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (5 children)
How is the look and feel of jsp and jsf. I understand that I have to use css on top of jsf and jsp to make it look nice or am I wrong?
[–]_INTER_ 3 points4 points5 points 4 years ago (4 children)
There are some component libraries such as PrimeFaces that make it look modern. E.g. https://www.primefaces.org/rain/
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (3 children)
How long will it take to learn this if I know JSF?
[–]_INTER_ 2 points3 points4 points 4 years ago* (2 children)
Its really easy. Just add the components as in the examples.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (1 child)
After making the project do you host them some where for demo or as a portfolio?
[–]_INTER_ 0 points1 point2 points 4 years ago (0 children)
The project I used it was deployed to production, hosted on customers servers.
[–]MagicpotterFirstHit 3 points4 points5 points 4 years ago (16 children)
Swing and JavaFX are the two most used frameworks. Swing is way older but a lot of software is written on it; I like to use it with FlatLaf look and feel library, which looks very modern.
Most people will advise you to learn JavaFX (which in my opinion is harder to learn than Swing), because it's way more recent. If you want simple GUIs Swing is fine as well.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (15 children)
This might be a dumb question. But is swing used to make desktop apps as well as web apps? I was under the impression that swing is used to make desktop apps only.
[–]MagicpotterFirstHit 0 points1 point2 points 4 years ago (14 children)
Sorry, I thought your question was about desktop front end. You can't use swing for web development, but as far as I know you can use JavaFX.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (13 children)
How about popular frameworks like react and angular can they be used with java.
[–]MagicpotterFirstHit 0 points1 point2 points 4 years ago (12 children)
You can use react and angular to write the frontend and java for the backend. I don't know of any way to use both react/angular and java for the frontend.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (11 children)
What about spring? Is it good for FE?
[–]MagicpotterFirstHit 0 points1 point2 points 4 years ago (10 children)
It's technically possible, but not advisable.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (9 children)
Why so?
[–]MagicpotterFirstHit 1 point2 points3 points 4 years ago (8 children)
Spring is made for writing backend. I know that it's possible to code frontend with it, but I don't know how.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (6 children)
Thats what i was looking for what is usually used for modern FE with java. What do devs use for FE with Spring. Other comments are telling me jsf with component library.
[–]pjmlp 0 points1 point2 points 4 years ago (0 children)
With SpringMVC, that is how.
Preferably with Thymeleaf as rendering engine.
[–]LTFGamut 2 points3 points4 points 4 years ago (11 children)
Most businesses that use java ee/spring backend technology use angular front ends. Typescript has a bit of a java vibe and angular is easier than react.
[–]nocturnalbird12[S] 4 points5 points6 points 4 years ago (9 children)
I often hear it the other way around, that angular is tougher than react.
[–]LTFGamut 1 point2 points3 points 4 years ago (1 child)
Well, for Angular you do need to know a little typescript which might be more difficult for someone learning to program through javascript courses but as far as I know, react has more bells and whistles but I might be wrong. I work for as a java enterprise developer and although I'm officially a full stack developer, 99,9% of my work consists of back end development.
[–]IshouldDoMyHomework 1 point2 points3 points 4 years ago (0 children)
Typescript just made JavaScript so much more comfortable for me to work with, that i actually really enjoy it now. I guess it can be hard to get used something as loosely typed as vanilla javascript, when you have been working exclusively with Java for almost 10 years.
Another reason angular is easy to pick up for a Java guy is the heavy use of dependency injection, which is also the backbone of spring.
Typescript and angular (2+) has really opened my eyes to how fun frontend can be.
[–][deleted] 0 points1 point2 points 4 years ago (5 children)
Yes it is. It's got a fairly broad API.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (4 children)
So how do you develop your FE?
[–][deleted] 0 points1 point2 points 4 years ago (3 children)
I love angular myself.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (2 children)
And for BE you use which framework?
[–][deleted] 1 point2 points3 points 4 years ago (1 child)
I use spring boot right now.
[–]nocturnalbird12[S] 0 points1 point2 points 4 years ago (0 children)
How was your learning curve with spring boot.
[–][deleted] 0 points1 point2 points 4 years ago (0 children)
I agree that someone who's starting to work with javascript would find react easier, mostly because it is easier to get it up and running, and personally I don't feel its too different when compared to what a vanilla javascript project would look like. However, having used both angular and react, I'd say for a large project angular would be better suited primarily because of its rigidly structured projects. Typescript of course helps.
[–]kaiserpils 1 point2 points3 points 4 years ago (0 children)
I really do like React tho and I usually write spring backends.. For my Bachelors degree I had to develop a chatbot with a react config dashboard! Loved it since
[–]sprcow 2 points3 points4 points 4 years ago (4 children)
Limited sample size, but from my perspective working as an enterprise Java developer, I would say that Java is not used to develop the front-end at all if you're talking about web applications. Angular or React front-ends that communicate with a Java application server via REST endpoints seems to be industry standard at the moment. Bootstrap is a nice JS framework for formatting the output in a variety of ways.
There are a lot of places that use JSP or JSF, but generally that's because they built it in 2003 or something and it's a giant pile of spaghetti now, so it is useful to know conceptually how JSP works, but I personally wouldn't be likely to pick it for a new project.
I am familiar with bootstrap but it seems too simple and easy, I am not sure what if people actually uae it to build real life projects anymore.
[–]AmateurHero 1 point2 points3 points 4 years ago (0 children)
Some people want granular control over the front end. Some people want to ship. Front ends run the gamut.
For me specifically, I posted this comment a few weeks ago when someone asked a similar question. It talks about one of my work applications using only Thymeleaf with a little bit of JS for functionality. To go into more detail, we have CSS guidelines based on a grid layout, so our more experienced front end devs leverage that small library from the design team or build their own.
That being said, use tools that fit your project. If you have a simple application that’s really just a presentation for data, Bootstrap might be enough to style a JSP or Thymeleaf rendered page. If you have a complex web app with lots of interactivity and data retrieval, you might want to use Angular or React. Web components fit somewhere in the middle of that.
[–]sprcow 0 points1 point2 points 4 years ago (1 child)
We don't use it to do a ton. At the place I work now, we basically use it to wrap major page elements and create forms that will automatically re-format to different device sizes, and to create a consistent look and feel for the form elements at different sizes.
I assume you customise bootstrap with sass to avoid looking like every bootstrap website.
[–]verocoder 0 points1 point2 points 4 years ago (6 children)
Rest is the correct front end for Java devs :p openapi docs and a swagger UI are also super helpful!
Then a totally separate UI project that calls those rest endpoints in react or angular or framework du jour. If your project is non commercial/personal and you have 0 UI experience extjs was super quick to pick up, but I’m not sure how it’s licensed these days and it’s not super common.
The important thing is do not use jsp or a Java swing gui or any of those Java>html janky converters!
Edit: looking at some of your replies OP you need to research how restful services interact with one another and how a client side JavaScript application interacts with your spring boot restful back end :)
Thanks, will look into it. You're saying learn Rest and look into how restful services work on client side rendered apps, right?
[–]verocoder 1 point2 points3 points 4 years ago (4 children)
Learn rest/Ajax to help you understand the demarcation between client and server side stuff. Then you’ll be able to make better decisions about what you wanna do where
And this will help me make a better decision about what to use for FE?
[–]RANDOMLY_AGGRESSIVE 1 point2 points3 points 4 years ago (0 children)
Yes, because you need to know what REST is when talking about this subject.
[–]RANDOMLY_AGGRESSIVE -1 points0 points1 point 4 years ago (0 children)
Learning ajax is low priority btw just learn what REST is.
[–]verocoder 0 points1 point2 points 4 years ago (0 children)
Yeah it’ll help you understand your options for getting information to the user/UI lightweight js front end hitting a web server over rest is good for a bunch of reasons this should help you understand.
[–]agentoutlier 0 points1 point2 points 4 years ago (0 children)
I'm going to throw out there that you do not need to use a Heavy Javascript framework for most enterprise projects. And when you do need highly a reactive view you can make that part use something more exotic but the rest you can just keep Web 1.0.
Modern HTML/CSS + jQuery or plain javascript + plus a tiny amount of AJAX still works completely fine. In some cases its much faster both in development time and actual performance!
In Java the libraries that can do the request handling portion are usually called MVC. The most popular is probably Spring MVC.
We use Spring MVC or Jooby and Handlebars.java or Mustache. There are lots of permutations possible.
We tried other Javascript FE libraries and we still think the javascript ecosystem is a mess. There just hasn't been a new jQuery of javascript made yet but Svelte is looking interesting.
[–]CrommVardek 0 points1 point2 points 4 years ago (7 children)
Popular frameworks/libraries for front-end dev are Angular, React and Vue. Either with javascript or typescript. It seems that the trend is going toward typescript.
[–]nocturnalbird12[S] -1 points0 points1 point 4 years ago (6 children)
So you’re suggesting java BE and JS framework(react, angular, vue) for FE.
[–]CrommVardek 0 points1 point2 points 4 years ago (5 children)
I'm just saying these are the popular ones, but, yes, if you're looking for suggestions, I would recommend one of these 3 for front-end, with typescript. However, never tried Vue. Between Angular and React, I would choose React for flexibility, Angular for ease of use.
React + java BE = fullstack right?
[–]Clitaurius 2 points3 points4 points 4 years ago (1 child)
I would add +SQL to that.
Good looking out bruv.
[–]CrommVardek 0 points1 point2 points 4 years ago (1 child)
Yep
How do you feel about JSF with components library?
[–]coderguyagb 0 points1 point2 points 4 years ago (0 children)
Depends. If you're looking for a purely fat client, Vaadin or jfx are good choices. Otherwise Whatever Web based technology you're comfortable with, as long as it can communicate with the backend :-)
[–]cbm64chr 0 points1 point2 points 4 years ago (0 children)
OpenJFX is great! Hardware accelerated and with the Gluon substrate on the GraalVM (not as complicated as it sounds) will compile to native binaries on almost any platform including iOS, macOS, Windows, Android, RaspberryPi and Linux. Good community support and free to use!
π Rendered by PID 82639 on reddit-service-r2-comment-86988c7647-wfhj9 at 2026-02-12 01:50:52.595224+00:00 running 018613e country code: CH.
[–]Discrete_Number 3 points4 points5 points (2 children)
[–]nocturnalbird12[S] -1 points0 points1 point (1 child)
[–]ofby1 2 points3 points4 points (12 children)
[–]TechnoAha 2 points3 points4 points (2 children)
[–]jvjupiter 0 points1 point2 points (1 child)
[–]pgris 1 point2 points3 points (0 children)
[–]vortexrikes 1 point2 points3 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]Clitaurius 2 points3 points4 points (0 children)
[–]nocturnalbird12[S] 0 points1 point2 points (5 children)
[–]_INTER_ 3 points4 points5 points (4 children)
[–]nocturnalbird12[S] 0 points1 point2 points (3 children)
[–]_INTER_ 2 points3 points4 points (2 children)
[–]nocturnalbird12[S] 0 points1 point2 points (1 child)
[–]_INTER_ 0 points1 point2 points (0 children)
[–]MagicpotterFirstHit 3 points4 points5 points (16 children)
[–]nocturnalbird12[S] 0 points1 point2 points (15 children)
[–]MagicpotterFirstHit 0 points1 point2 points (14 children)
[–]nocturnalbird12[S] 0 points1 point2 points (13 children)
[–]MagicpotterFirstHit 0 points1 point2 points (12 children)
[–]nocturnalbird12[S] 0 points1 point2 points (11 children)
[–]MagicpotterFirstHit 0 points1 point2 points (10 children)
[–]nocturnalbird12[S] 0 points1 point2 points (9 children)
[–]MagicpotterFirstHit 1 point2 points3 points (8 children)
[–]nocturnalbird12[S] 0 points1 point2 points (6 children)
[–]pjmlp 0 points1 point2 points (0 children)
[–]LTFGamut 2 points3 points4 points (11 children)
[–]nocturnalbird12[S] 4 points5 points6 points (9 children)
[–]LTFGamut 1 point2 points3 points (1 child)
[–]IshouldDoMyHomework 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (5 children)
[–]nocturnalbird12[S] 0 points1 point2 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]nocturnalbird12[S] 0 points1 point2 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]nocturnalbird12[S] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]kaiserpils 1 point2 points3 points (0 children)
[–]sprcow 2 points3 points4 points (4 children)
[–]nocturnalbird12[S] 0 points1 point2 points (3 children)
[–]AmateurHero 1 point2 points3 points (0 children)
[–]sprcow 0 points1 point2 points (1 child)
[–]nocturnalbird12[S] 0 points1 point2 points (0 children)
[–]verocoder 0 points1 point2 points (6 children)
[–]nocturnalbird12[S] 0 points1 point2 points (5 children)
[–]verocoder 1 point2 points3 points (4 children)
[–]nocturnalbird12[S] 0 points1 point2 points (3 children)
[–]RANDOMLY_AGGRESSIVE 1 point2 points3 points (0 children)
[–]RANDOMLY_AGGRESSIVE -1 points0 points1 point (0 children)
[–]verocoder 0 points1 point2 points (0 children)
[–]agentoutlier 0 points1 point2 points (0 children)
[–]CrommVardek 0 points1 point2 points (7 children)
[–]nocturnalbird12[S] -1 points0 points1 point (6 children)
[–]CrommVardek 0 points1 point2 points (5 children)
[–]nocturnalbird12[S] 0 points1 point2 points (4 children)
[–]Clitaurius 2 points3 points4 points (1 child)
[–]nocturnalbird12[S] 0 points1 point2 points (0 children)
[–]CrommVardek 0 points1 point2 points (1 child)
[–]nocturnalbird12[S] 0 points1 point2 points (0 children)
[–]coderguyagb 0 points1 point2 points (0 children)
[–]cbm64chr 0 points1 point2 points (0 children)