No panic. I've restored the lists below =)
Tutorials
- BalusC JSF 2.3 tutorial (Eclipse/WildFly/Maven)
- Oracle JSF 2.3 tutorial (Netbeans/Glassfish)
- BalusC JSF 2.2 tutorial (Eclipse/WildFly)
- Oracle JSF 2.2 tutorial (Netbeans/Glassfish)
- BalusC JSF 2.0 tutorial (Eclipse/Glassfish)
- Oracle JSF 2.0 tutorial (Netbeans/Glassfish)
- Mkyong JSF 2.0 tutorial (Eclipse/Tomcat/Maven)
General JSF facts
- History/disadvantages of JSF
- Difference between JSF, Servlet and JSP
- Point of using JSTL in JSF
- Point of component bindings
- Point of immediate="true"
- Using HTML4/5 in Facelets
- Usefulness of faces-config.xml in JSF2
- Usefulness of stateless JSF
- XSS, CSRF and SQLi prevention
- Overview of all web.xml parameters
When to use X or Y
- JSF vs plain HTML/CSS/JS/jQuery
- @ManagedBean vs @Named
- action vs actionListener
- Navigation vs Redirection
- f:viewAction vs @PostConstruct
- f:viewParam vs @ManagedProperty
- c:forEach vs ui:repeat
- h:outputLink vs h:commandLink
- h:button vs h:commandButton
- implicit vs explicit navigation
- h:outputLabel vs h:outputText
- ui:include vs tagfile vs composite vs component vs taghandler
JSF books
Why does JSF do this or that
Managed beans
Before learning JSF
Best practices
Facelets
Sample applications
Architecture
- Controller, Service and DAO
- What components are MVC in JSF
- Designing the business/service layer
- Usefulness of Spring and/or EJB
- Understanding "session" in EJB
- Background thread for scheduled task
- What exactly is Java EE
- My feedback on "Making Distinctions Between Different Kinds of JSF Managed-Beans" article
CSS/JS/image resources
Articles
Troubleshooting
- h:commandLink/Button is not invoked
- Validation Error: Value is not valid
- Conversion Error setting value for 'null Converter'
- @ViewScoped calls @PostConstruct on every request
- WARNING: PWC4011: Unable to set request character encoding to UTF-8
- WARNING: JSF1090: Navigation case not resolved for component
- WARNING: "Unable to find matching navigation case with from-view-id '[some.xhtml]'"
- httpError: The Http Transport returned a 0 status code
JavaScript
Blogs
JSF exceptions
- javax.faces.application.ViewExpiredException: View could not be restored
- java.lang.IllegalArgumentException: Component ID duplicate has already been found in the view
- java.lang.IllegalStateException: CDATA tags may not nest
- java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
- java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
- org.hibernate.LazyInitializationException at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValuesForModel
- UISelectMany on a List<T> causes java.lang.ClassCastException: java.lang.String cannot be cast to T
- java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
Forms
Specifications
Facelets exceptions
- javax.faces.view.facelets.FaceletException: Error Parsing /template.xhtml: The entity "nbsp" was referenced, but not declared
- javax.faces.view.facelets.FaceletException: Error Parsing /page.xhtml: The content of elements must consist of well-formed character data or markup
- "The entity name must immediately follow the '&' in the entity reference"
- "This XML file does not appear to have any style information associated with it. The document tree is shown below"
- "This page calls for XML namespace declared with prefix [tagname] but no taglibrary exists for that namespace"
Conversion/Validation
Documentation
EL exceptions
- javax.el.PropertyNotFoundException: Target Unreachable
- java.lang.NumberFormatException: For input string: "[propertyname]"
- org.apache.jasper.JasperException: The function [methodName] must be used with a prefix when a default namespace is not specified
- org.apache.el.parser.ParseException: Encountered “(” at line X, column Y. Was expecting one of [...]
Ajax
Libraries
- Mojarra (Oracle's implementation)
- MyFaces (Apache's implementation)
- OmniFaces (utility library)
- Apache DeltaSpike (utility library)
- PrimeFaces (jQuery + jQuery UI)
- PrimeFaces Extensions
- BootsFaces (Bootstrap + jQuery UI)
- ButterFaces (Bootstrap UI + jQuery)
- AngularFaces (AngularJS)
- BabbagesFaces (faster ajax)
- MaterialPrime (PF + MaterializeCSS)
- Tomahawk (standard extensions)
PrimeFaces general
- Overriding CSS in PrimeFaces
- Defer loading of PrimeFaces JS files
- Extend/override PrimeFaces.widget in JS
- Using PrimeFaces Selectors (PFS)
- StreamedContent in p:graphicImage
- Pass parameter to p:remoteCommand
- Fix corrupted UTF-8 in PrimeFaces
- Using component ID as widgetVar
- Auto-hide p:messages after certain time
- Attaching jQuery event bindings/listeners
- Change mouse cursor during ajax request
EL (Expression Language)
Library Showcases
PrimeFaces dialog
Uploading and downloading files
Library Documentation
Custom tags/components
Authentication/authorization
JSF phases/lifecycle cheatsheet
fc = FacesContext
vh = ViewHandler
in = UIInput
rq = HttpServletRequest
id = in.getClientId(fc);
1 RESTORE_VIEW
String viewId = rq.getServletPath();
fc.setViewRoot(vh.createView(fc, viewId));
2 APPLY_REQUEST_VALUES
in.setSubmittedValue(rq.getParameter(id));
3 PROCESS_VALIDATIONS
Object value = in.getSubmittedValue();
try {
value = in.getConvertedValue(fc, value);
for (Validator v : in.getValidators())
v.validate(fc, in, value);
}
in.setSubmittedValue(null);
in.setValue(value);
} catch (ConverterException
| ValidatorException e) {
fc.addMessage(id, e.getFacesMessage());
fc.validationFailed(); // Skips 4+5.
in.setValid(false);
}
4 UPDATE_MODEL_VALUES
bean.setProperty(in.getValue());
5 INVOKE_APPLICATION
bean.submit();
6 RENDER_RESPONSE
vh.renderView(fc, fc.getViewRoot());
1 comment:
Hello, BalusC! I am a java developer who was sick of the javascript framework hypes and complexities and decided to go back to a server side framework. Thanks for the blogs. It's helping a lot. Regards from brazil!
Post a Comment