開發環境:
1.Eclipse IDE for Java EE Developers Windows 32 Bit。
2.Google Plugin for Eclipse 3.7
3.Struts 2.2.3
Eclipse + Google Plugin for Eclipse 安裝方法請參考 Google 的說明:說明
P.S. 我有檢查過 Eclipse 的版本,推測應該是 3.7 版,所以 Google Plugin for Eclipse 的連結也改成3.7。
現在開始整合 Struts 2,如下步驟:
- 將 Struts 2 的壓縮檔解壓,然後在 lib 資料夾內找到以下 jar 檔並複製:
P.S. 版本會因你使用的 Struts 2 版本不同而有所差異- commons-fileupload-1.2.2.jar
- commons-io-2.0.1.jar
- commons-lang-2.5.jar
- commons-logging-1.1.1.jar
- javassist-3.11.0.GA.jar
- ognl-3.0.1.jar
- struts2-core-2.2.3.jar
- xwork-core-2.2.3.jar
- 將 jar 檔貼到專案的 war/WEB-INF/lib/ 底下,如圖:
- 設定專案的 Properties,選擇 Java Build Path > Libraries > Add JARs > 展開該專案並找到步驟二貼上的 jar 檔 > 選取步驟二貼上的 jar 檔並按下 OK,如圖:
- 設定專案的 Properties,展開 Google > 選取 Web Application > Add > 選取所有 jar 檔並按下 OK,如圖:
- 在專案的 war/ 底下新增 index.jsp 與 HelloWorld.jsp 兩個檔案:
index.jsp:<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="false" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Basic Struts 2 Application - Welcome</title>
</head>
<body>
<h1>Welcome To Struts 2!</h1>
<p><a href="<s:url action='hello'/>">Hello World</a></p>
</body>
</html>
HelloWorld.jsp:<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="false" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello World!</title>
</head>
<body>
<h2><s:property value="messageStore.message" /></h2>
</body>
</html> - 在專案 src/sample/ 目錄底下新增一個 InitListener.java:
P.S. sample 是我設定的 Package,此處請依照你設定的 Package 去更改。
P.S. 若不是使用 GAE 時是無需加上這個 Listener 的,至於為何要加上這個 Listener 呢?請看:詳細說明。package sample;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import ognl.OgnlRuntime;
public class InitListener implements ServletContextListener,
HttpSessionListener, HttpSessionAttributeListener {
public InitListener() {
}
public void contextInitialized(ServletContextEvent sce) {
OgnlRuntime.setSecurityManager(null);
}
public void contextDestroyed(ServletContextEvent arg0) {
}
public void sessionCreated(HttpSessionEvent arg0) {
}
public void sessionDestroyed(HttpSessionEvent arg0) {
}
public void attributeAdded(HttpSessionBindingEvent arg0) {
}
public void attributeRemoved(HttpSessionBindingEvent arg0) {
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
}
} - 找到專案 war/WEB-INF/ 底下的 web.xml,將內容更改如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Demo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>sample.InitListener</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app> - 在專案 src/sample/ 目錄底下新增 HelloWorldAction.java 與 MessageStore.java:
P.S. 網路上抄來的範例,忘了出處日後再補上。
HelloWorldAction.java:package sample;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private MessageStore messageStore;
public String execute() throws Exception {
messageStore = new MessageStore() ;
return SUCCESS;
}
public MessageStore getMessageStore() {
return messageStore;
}
public void setMessageStore(MessageStore messageStore) {
this.messageStore = messageStore;
}
}
MessageStore.java:package sample;
public class MessageStore {
private String message;
public MessageStore() {
setMessage("Hello Struts User");
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
} - 在專案 src/ 目錄底下新增 struts.xml:
struts.xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="test" extends="struts-default">
<action name="index">
<result>/index.jsp</result>
</action>
<action name="hello" class="sample.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts> - 執行專案後在瀏覽器輸入網址可看到結果如下:
沒有留言:
張貼留言