Notes by Fang
Displaying notes 1 - 10
Created by Fang on January 10, 2010 00:19:30
Last update: January 31, 2012 16:28:42
Maven is a powerful yet complex tool. When I started learning Maven, the first obstacle was, of course, its complexity. The second, was the lack of documentation that can get me off the ground quickly. This tutorial is an attempt to create a pragmatic guide that aims to get you familiar with Maven in the quickest way possible. The main theme is to get you on some hands on experience to start out and lead you through the creation of a simple Java EE project as quickly as possible. Instead of trying to give you a good read, I try to get you on the journey right away. The topics are roughly ordered by the logical sequence but you can jump around in any way...
Created by Fang on January 31, 2012 16:27:39
Last update: January 31, 2012 16:27:39
Because Maven dependencies are transitive, the same artifact may be brought in with different version numbers by multiple other dependencies. For example, the current project may depend on artifact A, which in turn depends on artifact C version 1. It may also have immediate dependency on artifact B, which in turn depends on artifact C version 2. Maven resolves these version conflicts in the following ways: Dependency Mediation : If a specific version is not declared in your project POM, Maven resolves the version number by nearest definition , which means it will use the closest dependency in the tree of dependencies for the current project. When dependency depth is the same, it will pick the one that appeared in the POM first. Dependency Management...
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 31, 2012 13:57:56
Last update: January 31, 2012 15:04:29
These are the minimum steps to configure Spring MVC in web.xml :
Bootstrap Spring MVC by registering ContextLoaderListener :
<listener>
<listener-class>
org.springfra...
Register the DispatcherServlet :
<servlet>
<servlet-name>spring</servlet-name>
...
Add servlet-mapping :
<servlet-mapping>
<servlet-name>spring</servle...
Configure DispatcherServlet with WEB-INF/spring-servlet.xml , which configures WebApplicationContext specific to this servlet.
<?xml version="1.0" encoding="UTF-8"?>
<beans x...
Optionally, use context-param in web.xml to configure the global WebApplicationContext :
<!-- XmlWebApplicationContext is the default, so t...
If you omit this section, you have to create file WEB-INF/applicationContext.xml , even if it's empty.
This is the full web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app...
Created by Fang on January 28, 2012 13:24:09
Last update: January 28, 2012 13:31:22
This is a simple JSP custom tags library with tag body. Just like the JSF counterpart , it splits a string and repeats the body for each word, i.e., with this markup:
<%@ taglib uri="http://custom.tag.com/demo" prefix...
output:
<html>
<body>
<p>Hello Tigger!</p>
<p>H...
With Maven, this is the directory structure:
./src
./src/main
./src/main/resources
./s...
There are three files to write:
pom.xml :
<project xmlns="http://maven.apache.org/POM/4.0.0"...
src/main/java/tagdemo/IterateTag.java :
package tagdemo;
import java.io.IOException...
src/main/resources/META-INF/demotag.tld :
<?xml version="1.0" encoding="UTF-8"?>
<!DO...
Build with:
mvn clean install
To use it as a dependency in other Maven projects:
<dependency>
<groupId>tag-demo</groupId>
...
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 January 16, 2012 20:01:47
Last update: January 17, 2012 08:06:45
The behavior is weird. If you don't have jQuery Form Plugin loaded but use ajaxSubmit with jQuery validation, the form submits normally (i.e., not Ajax):
$('#myform').validate({
submitHandler: func...
In fact, you can use any junk as a function call, the script does not error out but submits the form non-Ajax way:
$('#myform').validate({
submitHandler: func...
Created by Fang on January 16, 2012 19:50:00
Last update: January 16, 2012 19:50:00
jQuery validation plugin hooks into the form submission cycle, so in order to submit a form via Ajax you have to use the submitHandler option of the validate method:
$('#myform').validate({
submitHandler: func...
Or, with jQuery Form Plugin:
$('#myform').validate({
submitHandler: func...
Created by Fang on January 16, 2012 19:32:20
Last update: January 16, 2012 19:32:54
You can submit a form via Ajax by the jQuery Form Plugin . There are two main methods:
ajaxForm : prepares a form for Ajax submit.
Example:
$('#myFormId').ajaxForm({
target: ...
When the form is submitted, it is sent via Ajax.
ajaxSubmit : submit a form via Ajax.
Example:
$('#myForm2').submit(function() {
// i...
jQuery Form Plugin is not in the core jQuery API, so you have to include an additional JS file:
<head>
<script type="text/javascript" ...
Created by Fang on January 16, 2012 15:34:15
Last update: January 16, 2012 15:34:15
Use the .serialize() method to encode the form data for Ajax call:
$.ajax({
url: 'formHandler',
data: $(t...