版本:Spring3.1 + Hibernate3.6
包含:Displaytag、Tiles 、 OpenSessionInView 及 連接DB
資料庫:MS SQL2005
Schema:在/BlankSpring3/WebContent/dev/sql.txt,為了方便說明,僅用兩張Table。
下載: 原始碼 ,可直接從Eclipse import。
Spring3 MVC + Hibernate3 JPA架構說明:
src下的folder
bean:提供給controller使用的javabean。
controller:提供不同RequestMapping的實作方式,及回傳至頁面方式作參考。
persistence:Hibernate dao,此資料夾階由Myeclipse自動產生。
service:主要的商業邏輯寫在這,依照功能切分不同服務。ex:MemberService包含會員的新增、刪除和修改等。
WEB-INF下的folder
config:必要設定檔。ex: applicationContext.xml,Hibernate基本設定檔。
DataSourceService.xml,DB登入帳密,如果不想用c3p0的connection pool,直接更換此檔即可。
mvc-config.xml,Spring3 基本設定。
tiles-front.xml,tiles2設定。
jsp:主要有三部分,一.layout為tiles的框架;二.front為所有jsp頁面;三. common共用頁面。
細部說明:
Spring3 MVC 主要的優點就是,用annotation取代控制流程及注入的xml,幾乎可以說是0配置。
service:將service implement class加上@Service,以及要注入的dao,加上@Autowired即可。可以不用再寫DAOService.xml。
controller:將每個controller加上@Controller、@RequestMapping,以及要注入的service,加上@Autowired即可。可以不用再寫BaseService.xml、struts-config.xml。
處理client side request 方式
1. 說明:request method必須是get(若要用post就改成RequestMethod.POST),且參數要帶有method=load。
@RequestMapping(params="method=load",method = RequestMethod.GET)
public ModelAndView load() {...}
2. 說明:url 結尾必須要是xxx/login,才會執行此method。HttpServletRequest及HttpServletResponse這兩個參數不一定需要。Users為javabean,會自動將參數塞到bean中,類似struts的formbean。
@RequestMapping(value="/login")
public String test(HttpServletRequest request, HttpServletResponse response,Users userinfo){...}
3. 說明:url為xxx/{id},{id}作為傳遞的參數,接收參數必須加上@PathVariable。
@RequestMapping(value = "/{id}",method=RequestMethod.GET)
public ModelAndView helloWorld(@PathVariable Long id) {...}
Tiles設定:
1. 在mvc-config.xml加入
2. 在/WEB-INF/config/增加tiles-front.xml,範例請下載原始碼。
注意事項:請看
包含:Displaytag、Tiles 、 OpenSessionInView 及 連接DB
資料庫:MS SQL2005
Schema:在/BlankSpring3/WebContent/dev/sql.txt,為了方便說明,僅用兩張Table。
下載: 原始碼 ,可直接從Eclipse import。
Spring3 MVC + Hibernate3 JPA架構說明:
src下的folder
bean:提供給controller使用的javabean。
controller:提供不同RequestMapping的實作方式,及回傳至頁面方式作參考。
persistence:Hibernate dao,此資料夾階由Myeclipse自動產生。
service:主要的商業邏輯寫在這,依照功能切分不同服務。ex:MemberService包含會員的新增、刪除和修改等。
WEB-INF下的folder
config:必要設定檔。ex: applicationContext.xml,Hibernate基本設定檔。
DataSourceService.xml,DB登入帳密,如果不想用c3p0的connection pool,直接更換此檔即可。
mvc-config.xml,Spring3 基本設定。
tiles-front.xml,tiles2設定。
jsp:主要有三部分,一.layout為tiles的框架;二.front為所有jsp頁面;三. common共用頁面。
細部說明:
Spring3 MVC 主要的優點就是,用annotation取代控制流程及注入的xml,幾乎可以說是0配置。
service:將service implement class加上@Service,以及要注入的dao,加上@Autowired即可。可以不用再寫DAOService.xml。
controller:將每個controller加上@Controller、@RequestMapping,以及要注入的service,加上@Autowired即可。可以不用再寫BaseService.xml、struts-config.xml。
處理client side request 方式
1. 說明:request method必須是get(若要用post就改成RequestMethod.POST),且參數要帶有method=load。
@RequestMapping(params="method=load",method = RequestMethod.GET)
public ModelAndView load() {...}
2. 說明:url 結尾必須要是xxx/login,才會執行此method。HttpServletRequest及HttpServletResponse這兩個參數不一定需要。Users為javabean,會自動將參數塞到bean中,類似struts的formbean。
@RequestMapping(value="/login")
public String test(HttpServletRequest request, HttpServletResponse response,Users userinfo){...}
3. 說明:url為xxx/{id},{id}作為傳遞的參數,接收參數必須加上@PathVariable。
@RequestMapping(value = "/{id}",method=RequestMethod.GET)
public ModelAndView helloWorld(@PathVariable Long id) {...}
Tiles設定:
1. 在mvc-config.xml加入
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/config/tiles-front.xml</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="viewResolvers"> <list> <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" /> <property name="order" value="1" /> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </list> </property> </bean>
2. 在/WEB-INF/config/增加tiles-front.xml,範例請下載原始碼。
注意事項:請看