簡介
我們在先前的兩篇文章中已經向大家介紹過Spring與Hibernate的結合運用的範例教學。
然而於本文中,我們將再把Struts2也一起加入進來使用,讓整個專案形成一個結構嚴謹與完整的MVC(Model View Controller)架構。
使用的工具&技術
1.JDK1.7.0_04
2.Hibernate 3.2.3.GA
3.JBoss Hibernate Tools
4.Spring3.0.7
5.Struts2-2.3.15.1
6.MySQL 5.5
7.Eclipse Java EE KEPLER
第一支MyStruts2專案
在圖1中可以讓我們清楚的了解,整個專案的目錄結構,大致分為dao,service,action三個主要的目錄組成。
圖1.MyStruts2專案結構
第一步,下載Struts2-2.3.15.1與Spring3.0.7和Hibernate 3.2.3.GA的相關jar檔案。
Struts2部份主要的jar:
struts2-core-2.3.15.1.jar
struts2-embeddedjsp-plugin-2.3.15.1.jar
struts2-json-plugin-2.3.15.1.jar
struts2-spring-plugin-2.3.15.1.jar
xwork-core-2.3.15.1.jar
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
ognl-3.0.6.jar
oro-2.0.8.jar
第二步,生成Spring與Hibernate的相關dao和service
Hibernate組成部份:
UserInfo.java
UserInfo.hbm.xml
UserInfoHome.java
Spring組成部份:
UserInfoManager.java
applicationContext.xml
第三步,建立struts.xml配置檔
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.devMode" value="false" /> <!-- struts的URL擴展名--> <constant name="struts.action.extension" value="do" /> <!-- 允許訪問靜態成員變量 --> <constant name="struts.ognl.allowStaticMethodAccess" value="true" /> <constant name="struts.custom.i18n.resources" value="i18n/messages" /> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.enable.SlashesInActionNames" value="true" /> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"></constant> <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.DefaultActionMapper"></constant> <package name="default" namespace="/pages" extends="struts-default"> <action name="*/*" method="{2}" class="com.yourcompany.ms2.action.{1}Action"> <result name="success">/pages/{1}/{2}.jsp</result> </action> <!-- Add your actions here --> </package> </struts>
第四步,加入query.jsp顯示資料庫查詢結果 (需位於pages/Test/目錄底下)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'query.jsp' starting page</title> </head> <body> <h2><s:property value="message" /></h2> <s:label value="OK"/> </body> </html>
第五步,創建TestAction測試程式
package com.yourcompany.ms2.action; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.ActionSupport; import com.yourcompany.ms2.domain.UserInfo; import com.yourcompany.ms2.service.UserInfoManager; public class TestAction extends ActionSupport { @Autowired private UserInfoManager userInfoManager; public String query() throws Exception { // 查詢 UserInfo user = userInfoManager.query(new Integer(1)); //out.println("查詢一筆記Username: "+user.getUsername()); setMessage("查詢一筆記Username: "+user.getUsername()); return SUCCESS; } public String hello() throws Exception { setMessage("Hello, My Struts2."); return SUCCESS; } private String message; public void setMessage(String message) { this.message = message; } public String getMessage() { return message; } }
結論
假如您已經學會了Spring結合Hibernate的混合搭配使用,那麼這篇文章中,你只需要把焦點集中在Struts2的參數設定和實際操作測試。轉眼間,我們已經成功的演繹Struts2 + Spring + Hibernate的網站專案的示範教學。(下載本文範例程式檔) 記得下載相關jar檔
沒有留言:
張貼留言