I made application web using hibernate + spring + velocity and
IDE Netbeans 6.8 + Glassfish
this my files
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"
>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties" />
<context:annotation-config/>
<context:component-scan base-package="tutorial.spring"/>
<tx:annotation-driven/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driver}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}"
/>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="/WEB-INF/hibernate.cfg.xml"
p:configurationClass="org.hibernate.cfg.AnnotationConfiguration"
/>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"
/>
</beans>
tutorial-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
>
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<context:component-scan base-package="tutorial.spring.ui.springmvc" />
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="messages" />
<bean id="velocityConfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath"
value="/WEB-INF/templates/velocity/"/>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="/WEB-INF/templates/velocity" />
<property name="suffix" value=".html" />
</bean>
</beans>
UserDao.java
package tutorial.spring.dao;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Repository;
import tutorial.spring.base.dao.hibernate.BaseDaoHibernate;
import tutorial.spring.model.User;
@Repository
public class UserDao extends BaseDaoHibernate<User> {
private static final Log LOG = LogFactory.getLog(UserDao.class);
public List<User> getAllUser() {
return sessionFactory.getCurrentSession().createQuery("from User ").list();
}
}
MasterService.java
package tutorial.spring.service;
import java.util.Date;
import java.util.List;
import tutorial.spring.model.User;
/**
*
* @author user
*/
public interface MasterService {
public void save(User user);
public List<User> getAllUser();
}
MasterServiceImpl.java
package tutorial.spring.service.impl;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tutorial.spring.dao.UserDao;
import tutorial.spring.model.User;
import tutorial.spring.service.MasterService;
/**
*
* @author user
*/
@Service("masterService")
@Transactional(readOnly = true)
public class MasterServiceImpl implements MasterService {
@Autowired private UserDao userDao;
@Transactional
public void save(User user) {
userDao.save(user);
}
public List<User> getAllUser() {
return userDao.getAllUser();
}
/**
* @param userDao the userDao to set
*/
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
UserController.java
package tutorial.spring.ui.springmvc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import tutorial.spring.dao.UserDao;
import tutorial.spring.service.MasterService;
@Controller
public class UserController {
private UserDao userDao;
private MasterService masterService;
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@RequestMapping("/userlist")
public ModelMap list(){
System.out.println("User List");
return new ModelMap(masterService.getAllUser());
}
/**
* @return the masterService
*/
public MasterService getMasterService() {
return masterService;
}
/**
* @param masterService the masterService to set
*/
public void setMasterService(MasterService masterService) {
this.masterService = masterService;
}
/**
* @return the userDao
*/
public UserDao getUserDao() {
return userDao;
}
}
index.html
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>:: Spring 2.5 Tutorial ::</title>
</head>
<body>
<h1>Spring Tutorial</h1>
<ul>
<li><a href="tutorial/userlist.html">List of user</a></li>
</ul>
</body>
</html>
i writen file userlist.hmtl in folder
WEB-INF
templates
velocity
userlist.html
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>:: List of All User ::</title>
</head>
<body>
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<th>Name</th>
<th>Email</th>
<th> </th>
</tr>
#foreach($user in $userList)
<tr>
<td>$user.name</td>
<td>$user.email</td>
<td><a href="personform?person_id=$person.Id">edit</a> | <a
href="persondetail?person_id=$person.Id">view</a></td>
</tr>
#end
</table>
</body>
</html>
when i run then clik link List Of User
got error:
INFO: 2010-12-24 13:34:44,638 [http-thread-pool-16492-(1)]
WARN org.springframework.web.servlet.PageNotFound No mapping for [/SpringFrameWrkMVCHiberVelocity/tutorial/userlist.html]
in DispatcherServlet with name 'tutorial'
thanks for you help