Notes by Fang

Displaying keyword search results 1 - 10
Created by Fang on March 30, 2012 10:07:25    Last update: March 08, 2013 13:41:57
After a user resets a password, I want to force the user to change the password before she gets access to secured content. This is usually done with a servlet filter. But with Spring MVC, you can also use a HandlerInterceptor . According to Spring JavaDoc: HandlerInterceptor is basically similar to a Servlet 2.3 Filter, but in contrast to the latter it just allows custom pre-processing with the option of prohibiting the execution of the handler itself, and custom post-processing. Filters are more powerful, for example they allow for exchanging the request and response objects that are handed down the chain. Note that a filter gets configured in web.xml, a HandlerInterceptor in the application context. As a basic guideline, fine-grained handler-related preprocessing tasks are candidates...
Created by Fang on October 31, 2011 12:54:05    Last update: October 23, 2012 12:31:16
In JSP you output the web application context path with: ${pageContext.request.contextPath} Facelets are not JSPs, and there's no pageContext . So the above does not work. But in facelets you can use request directly: ${request.contextPath} For example, a link to the root URL: <a href="${request.contextPath}">Home</a> Servlet request URL: <h2>#{request.requestURL}</h2>
Created by Fang on April 16, 2012 13:32:10    Last update: April 16, 2012 13:32:10
There are two steps to create a custom function for JSP: Declare the function in the TLD: <?xml version="1.0" encoding="UTF-8" ?> <taglib... Implement the function (must be static): package com.example; public class UrlTransl... To use the function: <%@ taglib uri="http://www.example.com/jsp/tags" p...
Created by Fang on March 30, 2012 12:15:49    Last update: March 30, 2012 12:15:49
1. mvc:default-servlet-handler Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet. Use of this handler allows using a "/" mapping with the DispatcherServlet while still utilizing the Servlet container to serve static resources. HandlerMapping: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping Handler: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping Attribute Description default-servlet-name The name of the default Servlet to forward to for static resource requests. The handler will try to auto-detect the container's default Servlet at startup time using a list of known names. If the default Servlet cannot be detected because of using an unknown container or because it has been manually configured, the servlet name must be set explicitly. 2. mvc:view-controller Defines a simple Controller that selects a view to render the response. HandlerMapping: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping Handler: org.springframework.web.servlet.mvc.ParameterizableViewController Attribute Description...
Created by Fang on March 15, 2012 10:24:35    Last update: March 15, 2012 10:24:35
Suppose that I have an email field annotated with: @NotEmpty(message="Please enter email address") ... Bean validation will trigger two errors when no email address is entered: the email field is empty an empty email field is not a valid email address Displaying both errors to the user with <form:errors> would be redundant and confusing: <%@ taglib uri="http://www.springframework.org/tag... This is how to display the first error only: <spring:bind path="emailAddress"> <c:if test="$...
Created by Fang on February 08, 2012 21:15:00    Last update: February 08, 2012 21:15:00
This was the error message: [ERROR] sun.security.validator.ValidatorExceptio... The certificate was actually signed by Verisign, but somehow failed to pass Java cert validation. To resolve the problem: Download the cert from the server (with RetrieveSSLCert , for example) Import the certificate into the keystore: $ keytool -import -trustcacerts -alias myserver -f... Define MAVEN_OPTS : $ export MAVEN_OPTS='-Djavax.net.ssl.trustStore=/h... The quotes must exist for the value of MAVEN_OPTS , and the path must be absolute ( ~/etc/mavenKeyStore.jks does not work).
Created by Fang on January 31, 2012 15:40:34    Last update: January 31, 2012 15:41:28
This is a simple Hello World application with Spring 3 MVC. Like the default Apache HTTPd welcome page, it displays " It works! " when successfully deployed. The sole purpose is to show the minimum elements needed to setup Spring 3 MVC. I use Maven since it's so much easier than downloading the dependencies manually. Directory layout: ./src ./src/main ./src/main/webapp ./src/... pom.xml : <?xml version="1.0" encoding="UTF-8"?> <project... WEB-INF/web.xml : <?xml version="1.0" encoding="UTF-8"?> <web-app... WEB-INF/applicationContext.xml (empty, but needed): <?xml version="1.0" encoding="UTF-8"?> <beans x... WEB-INF/spring-servlet.xml : <?xml version="1.0" encoding="UTF-8"?> <beans x... WEB-INF/jsp/home.jsp : <!DOCTYPE html> <html> <head> <title>H... Build with: mvn clean package The resulting webapp is target/springmvc.war .
Created by Fang on January 17, 2012 13:49:26    Last update: January 17, 2012 13:49:26
Some dependencies may not be available from the central Maven repository, or any public repository (for example, due to licensing issues). You can install these to your local repository with the Maven Install Plugin : mvn install:install-file -Dfile=path-to-your-arti... Only the file parameter is required.
Created by Fang on December 09, 2011 11:50:28    Last update: December 09, 2011 11:51:34
Values of Maven properties are accessed with the construct ${...} . Properties come from 5 different sources: From the environment, for example: ${env.PATH} , ${env.JAVA_HOME} . From the POM, in the form of ${project.x} . For example: ${project.version} , ${project.groupId} . From settings.xml , in the form of ${settings.x} . For example: ${settings.offline} , ${settings.interactiveMode} . From Java system properties, for example: ${java.home} . Defined within the properties element in the POM. For example ( gae.version ): <properties> <gae.version>1.4.2</gae.ve...
Created by Fang on November 12, 2011 21:03:03    Last update: November 12, 2011 21:03:03
Experts may disagree but I found it absolutely stunning that JSF EL does not provide an operator for string concatenation. The Java "+" operator is there for the take. Java, which is a strongly typed compiled language, overloads the "+" operator in such a way that any object can be concatenated with a string. But JSF EL, which definitely isn't as strongly typed as Java, restricts the "+" operator to numerical values only! Of course, experts may argue that the "+" operator overloading is a huge design flaw of the Java language. But even so, JSF EL is not the right place to fix it! In some cases, a concatenation operator isn't needed, for example: <ui:repeat var="tab" value="#{tabs}"> <img ... But in case the concatenated...
Previous  1 2 Next