<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=ApacheStruts</id>
	<title>ApacheStruts - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=ApacheStruts"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=ApacheStruts&amp;action=history"/>
	<updated>2026-05-17T11:43:13Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=ApacheStruts&amp;diff=489342&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=ApacheStruts&amp;diff=489342&amp;oldid=prev"/>
		<updated>2025-08-23T19:41:59Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hant-TW&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上個修訂&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;於 2025年8月24日 (日) 03:41 的修訂&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Struts&#039;&#039;&#039;是 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Apache 軟體基金會（ASF）贊助的&lt;/del&gt;一个&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;開源項目。伊上頭仔是 Jakarta 項目中的一个子項目，並且佇二空空四年三月成做 ASF 的頂級項目。伊通過採&lt;/del&gt;用 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Java Servlet／JSP 技術，實現了基&lt;/del&gt;於 Java EE &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web &lt;/del&gt;應用&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的 Model-View-Controller（MVC）設計模&lt;/del&gt;式的應用&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;框殼&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;是 &lt;/del&gt;MVC &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;經典設計模式內底的一个經典產品&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Apache &lt;/ins&gt;Struts &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二&lt;/ins&gt;&#039;&#039;&#039;是一个用於&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;開發 &lt;/ins&gt;Java EE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;網路&lt;/ins&gt;應用&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;程&lt;/ins&gt;式的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;開放原始碼網頁&lt;/ins&gt;應用&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;程式架構。伊利用閣伸出來矣 Java Servlet API&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;鼓勵開發者採用 &lt;/ins&gt;MVC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;架構&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==MVC &lt;/del&gt;結構&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;因緣 Apache Struts 的 WebWork 框架，旨咧提供相對的 Struts 框架的增強佮改進，同時保留和 Struts 框架類似的&lt;/ins&gt;結構&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;。二空空五年十二月，WebWork 宣佈 WebWork 二孵二以 Apache Struts 二的名義合併至 Struts。二空空七年二月頭一个全發布（full release）版本釋出。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;佇咧 Struts 中，已經是由一个名為 _ ActionServlet _ 的 Servlet 充當&#039;&#039;&#039;控制器&#039;&#039;&#039;（&#039;&#039;&#039;Controller&#039;&#039;&#039;）的角色，根據描述模型、視圖、控制器對應關係的 _ struts-config . xml _ 的配置文件，轉&lt;/del&gt;發&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;視圖（&#039;&#039;&#039;View&#039;&#039;&#039;）的請求，組裝響應數據模型（&#039;&#039;&#039;Model&#039;&#039;&#039;）。 佇咧 MVC 的&#039;&#039;&#039;模型&#039;&#039;&#039;（&#039;&#039;&#039;Model&#039;&#039;&#039;）部份，定定畫分做兩个主要的子系統（_ 系統的內部數據狀態 _ 佮 _ 改變數據狀態的邏輯動作 _）， 這兩个概念子系統分別具體對應 Struts 內底的 _ ActionForm _ 佮 _ Action _ 兩个需要繼承實現超類。佇遮，Struts 會當佮各種&lt;/del&gt;標&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;準的數據訪問技術結合做伙，包括講 Enterprise Java Beans（EJB）, JDBC 佮 JNDI。佇咧 Struts 的&#039;&#039;&#039;視圖&#039;&#039;&#039;（&#039;&#039;&#039;View&#039;&#039;&#039;）捀，除了使用標準的 JavaServer Pages（JSP）以外，閣提供大量的標籤庫來使用，同時嘛會當佮其他的表現層組件的技術（產品）進行整合，比如講 Velocity Templates，XSLT 等。通過應用 Struts 的框殼，最終用戶會當共大部份的關注點囥佇咧家己的業務邏輯（_ Action _）佮映射關係的配置文件（_ struts-config . xml _）中。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==開&lt;/ins&gt;發&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;目&lt;/ins&gt;標&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==發展歷&lt;/del&gt;程&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts 設計的頭一目標就是使 MVC 模式應用 web &lt;/ins&gt;程&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;式設計。佇過去一Ｏ年，Struts 佇咧閣較好的 web 應用方面所做的工課是值得肯定的。佇咧某一寡方面，Struts 社群注意著這一箍輾轉的局限性，所以這个活骨的社群通過著 MVC 執行模式的重新理解閣同齊引入一寡新的建築學方面的設計理念了後，新的 Struts 二框架結構閣較清楚，使用較靈活方便。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;佇咧 Java EE &lt;/del&gt;的 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Web &lt;/del&gt;應用&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;發展&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;初期&lt;/del&gt;，除&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;了使用 Servlet &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;技術以外&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;普遍是咧 JavaServer Pages（JSP）&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;原始碼中&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;採&lt;/del&gt;用 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HTML 佮 Java &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;代碼混合&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;方式進行開發。&lt;/del&gt;因為&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;這&lt;/del&gt;兩&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;種&lt;/del&gt;方&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;式袂當避免&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;愛共表現佮業務邏輯代碼透濫做伙&lt;/del&gt;，攏&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;予前期開發佮後期維護帶來誠大&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;複雜度。為著欲擺脫喝&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;約束和局限&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;共&lt;/del&gt;業務邏輯&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;代碼對表現層中清楚度&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;分離出來，二空空空年，Craig McClanahan &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;採用矣 MVC 的&lt;/del&gt;設計&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;模式開發 Struts。尾仔該框架產品一度予人認為是上廣泛、上時行 JAVA 的 WEB 應用框殼&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;這一新&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;結構包含&lt;/ins&gt;應用&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;邏輯&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;橫切面攔截器&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;基於注釋的組態以減少佮去&lt;/ins&gt;除 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;XML &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;形式的設定檔&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;功能強大的表達式&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;語言&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;支援可能改、會當重&lt;/ins&gt;用 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;UI &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;組件&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;是&lt;/ins&gt;因為&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;微 MVC 的標籤庫。Struts 二有&lt;/ins&gt;兩方&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;面&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;技術優勢&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一是所有的 Struts 二應用程式&lt;/ins&gt;攏&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;是因為 client / server HTTP 交換協定，The Java Servlet API 揭示矣 Java Servlet 只是 Java API &lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一个足細漢&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;集&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;按呢阮會當佇&lt;/ins&gt;業務邏輯&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;部份使用功能強大&lt;/ins&gt;的 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Java &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;語言進行程式&lt;/ins&gt;設計。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;二&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;空空六年，WebWork 佮 Struts &lt;/del&gt;的 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Java EE Web 框架&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;團體&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;決定合作共同開發&lt;/del&gt;一&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;个新&lt;/del&gt;的，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;整合矣 WebWork &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;佮 Struts 優點，並且閣較優雅&lt;/del&gt;、&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;擴展性閣較強的框殼，號名號做「&#039;&#039;&#039;Struts 二&#039;&#039;&#039;」，原 Struts 的一 . x 版本的產品叫做「Struts 一」。 Struts 項目並且提供佮維護兩个主要版本的框殼產品—— Struts 一佮 Struts 二&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/ins&gt;二&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;提供矣著 MVC &lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一个足清&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;實現&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;這&lt;/ins&gt;一&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;實現包含真濟參與嘿所以請求進行處理&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;關鍵組件&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;如：攔截器、OGNL &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;表達式語言&lt;/ins&gt;、&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;疊&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;佇二空空八年十二月，Struts 發佈了上尾仔一个正式版（一孵三 . 十）， 二空一三年四月初五，Struts 開發組宣布終止矣 Struts 一的軟體開發周期。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==漏洞處理手法==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==優缺點==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts 二開發組常予人指空修復手法無妥當，欲按怎修復了後猶閣有利用，欲按怎無法度修復並長期閒置。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;的優點主要集&lt;/del&gt;中&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;體這馬兩&lt;/del&gt;个&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;方面，Taglib 佮頁面導航。Taglib &lt;/del&gt;是 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;標記庫&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;靈活動用&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;能大大&lt;/del&gt;提&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;懸&lt;/del&gt;開發&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;效率&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;其&lt;/ins&gt;中&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;就有一&lt;/ins&gt;个&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;由標記做&lt;/ins&gt;是 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;S &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二嬸三的空報告引發了相連紲&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;遠端執行問題&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;官方濟擺修復猶是無法度完全解決&lt;/ins&gt;，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;甚至是報告提交者濟擺&lt;/ins&gt;提&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;交其他的方案警醒&lt;/ins&gt;開發&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;組注意&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;這个名來源於&lt;/del&gt;佇咧&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;建築佮舊式飛機&lt;/del&gt;中&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;使用的支持金屬架仔。伊的目的是為著欲減少咧運用 MVC 設計模型來&lt;/del&gt;開&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;發 Web 應用&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;時間。你猶原需要學習佮應&lt;/del&gt;用&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;應該架構&lt;/del&gt;，&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;猶毋過伊會當完成其&lt;/del&gt;中&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一寡繁重&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;工課。Struts 佮 Tomcat、Turbine 等諸多 Apache &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;項目仝款，是開源軟體，這是伊&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一大優點，使開發者會當閣較深&lt;/del&gt;入&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;了解其內部實現機制&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二空一三年七月發佈了二嬸三 . 十五鋪一發布版，啊若&lt;/ins&gt;佇咧&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;修復事項當&lt;/ins&gt;中&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;公&lt;/ins&gt;開&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一段遠端執行漏洞&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;範例代碼，予駭客圈內底利&lt;/ins&gt;用，&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;致使&lt;/ins&gt;中&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;國大陸大量&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;使用 Struts &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二&lt;/ins&gt;的&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;網站予&lt;/ins&gt;入&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;侵&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二&lt;/del&gt;的&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;空縫處理機制捷予顧頭雞仔病，一來 OGNL 的功能強大佮請求處理機制真好產生遠程執行問題，二來開發組&lt;/del&gt;對&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;空縫處理能力不足，欲按怎修復了後猶原會當踅過，欲哪會無法度修復咧長期閒置處理。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==參見==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Web &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;應用框殼&lt;/ins&gt;的對&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;比&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==參考文獻==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==參考文獻==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot;&gt;第26行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第28行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 官方網站&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 官方網站&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Struts 二外掛程式登記處&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==&lt;/del&gt;參&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;見==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Struts 二 jQuery 掛程式&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Struts 二指南&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Struts 二&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* 佇咧 JBoss 上進行 Struts 開發的教程&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MVC &lt;/del&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;設計模式&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* 佇咧無容器的情況下進行 Struts 二 Actions 測試（&lt;/ins&gt;參&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;考：Web 容器）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;軟體基金會&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Struts 二&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;範例&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;J &lt;/del&gt;二 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EE&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;二校驗範例&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/ins&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;漏洞&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Struts &lt;/ins&gt;二&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;嬸零校驗&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分類: 待校正]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[分類: 待校正]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=ApacheStruts&amp;diff=489340&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=ApacheStruts&amp;diff=489340&amp;oldid=prev"/>
		<updated>2025-08-23T19:41:57Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Struts&amp;#039;&amp;#039;&amp;#039;是 Apache 軟體基金會（ASF）贊助的一个開源項目。伊上頭仔是 Jakarta 項目中的一个子項目，並且佇二空空四年三月成做 ASF 的頂級項目。伊通過採用 Java Servlet／JSP 技術，實現了基於 Java EE Web 應用的 Model-View-Controller（MVC）設計模式的應用框殼，是 MVC 經典設計模式內底的一个經典產品。&lt;br /&gt;
&lt;br /&gt;
==MVC 結構==&lt;br /&gt;
&lt;br /&gt;
佇咧 Struts 中，已經是由一个名為 _ ActionServlet _ 的 Servlet 充當&amp;#039;&amp;#039;&amp;#039;控制器&amp;#039;&amp;#039;&amp;#039;（&amp;#039;&amp;#039;&amp;#039;Controller&amp;#039;&amp;#039;&amp;#039;）的角色，根據描述模型、視圖、控制器對應關係的 _ struts-config . xml _ 的配置文件，轉發視圖（&amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;）的請求，組裝響應數據模型（&amp;#039;&amp;#039;&amp;#039;Model&amp;#039;&amp;#039;&amp;#039;）。 佇咧 MVC 的&amp;#039;&amp;#039;&amp;#039;模型&amp;#039;&amp;#039;&amp;#039;（&amp;#039;&amp;#039;&amp;#039;Model&amp;#039;&amp;#039;&amp;#039;）部份，定定畫分做兩个主要的子系統（_ 系統的內部數據狀態 _ 佮 _ 改變數據狀態的邏輯動作 _）， 這兩个概念子系統分別具體對應 Struts 內底的 _ ActionForm _ 佮 _ Action _ 兩个需要繼承實現超類。佇遮，Struts 會當佮各種標準的數據訪問技術結合做伙，包括講 Enterprise Java Beans（EJB）, JDBC 佮 JNDI。佇咧 Struts 的&amp;#039;&amp;#039;&amp;#039;視圖&amp;#039;&amp;#039;&amp;#039;（&amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039;）捀，除了使用標準的 JavaServer Pages（JSP）以外，閣提供大量的標籤庫來使用，同時嘛會當佮其他的表現層組件的技術（產品）進行整合，比如講 Velocity Templates，XSLT 等。通過應用 Struts 的框殼，最終用戶會當共大部份的關注點囥佇咧家己的業務邏輯（_ Action _）佮映射關係的配置文件（_ struts-config . xml _）中。&lt;br /&gt;
&lt;br /&gt;
==發展歷程==&lt;br /&gt;
&lt;br /&gt;
佇咧 Java EE 的 Web 應用發展的初期，除了使用 Servlet 技術以外，普遍是咧 JavaServer Pages（JSP）的原始碼中，採用 HTML 佮 Java 代碼混合的方式進行開發。因為這兩種方式袂當避免的愛共表現佮業務邏輯代碼透濫做伙，攏予前期開發佮後期維護帶來誠大的複雜度。為著欲擺脫喝的約束和局限，共業務邏輯代碼對表現層中清楚度的分離出來，二空空空年，Craig McClanahan 採用矣 MVC 的設計模式開發 Struts。尾仔該框架產品一度予人認為是上廣泛、上時行 JAVA 的 WEB 應用框殼。&lt;br /&gt;
&lt;br /&gt;
二空空六年，WebWork 佮 Struts 的 Java EE Web 框架的團體，決定合作共同開發一个新的，整合矣 WebWork 佮 Struts 優點，並且閣較優雅、擴展性閣較強的框殼，號名號做「&amp;#039;&amp;#039;&amp;#039;Struts 二&amp;#039;&amp;#039;&amp;#039;」，原 Struts 的一 . x 版本的產品叫做「Struts 一」。 Struts 項目並且提供佮維護兩个主要版本的框殼產品—— Struts 一佮 Struts 二。&lt;br /&gt;
&lt;br /&gt;
佇二空空八年十二月，Struts 發佈了上尾仔一个正式版（一孵三 . 十）， 二空一三年四月初五，Struts 開發組宣布終止矣 Struts 一的軟體開發周期。&lt;br /&gt;
&lt;br /&gt;
==優缺點==&lt;br /&gt;
&lt;br /&gt;
Struts 的優點主要集中體這馬兩个方面，Taglib 佮頁面導航。Taglib 是 Struts 的標記庫，靈活動用，能大大提懸開發效率。&lt;br /&gt;
&lt;br /&gt;
Struts 這个名來源於佇咧建築佮舊式飛機中使用的支持金屬架仔。伊的目的是為著欲減少咧運用 MVC 設計模型來開發 Web 應用的時間。你猶原需要學習佮應用應該架構，猶毋過伊會當完成其中一寡繁重的工課。Struts 佮 Tomcat、Turbine 等諸多 Apache 項目仝款，是開源軟體，這是伊的一大優點，使開發者會當閣較深入了解其內部實現機制。&lt;br /&gt;
&lt;br /&gt;
Struts 二的空縫處理機制捷予顧頭雞仔病，一來 OGNL 的功能強大佮請求處理機制真好產生遠程執行問題，二來開發組對空縫處理能力不足，欲按怎修復了後猶原會當踅過，欲哪會無法度修復咧長期閒置處理。&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* 官方網站&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* Struts 二&lt;br /&gt;
* MVC 設計模式&lt;br /&gt;
* Apache 軟體基金會&lt;br /&gt;
* J 二 EE&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>