Struts 於 2000 年 3 月推出,基於 Java Servlet/JSP 技術,是開源的 MVC Web 應用框架。本手冊記錄安裝配置、核心組件運作流程與實戰分析,供開發者快速上手。
E:\mylib\jakarta-struts,包含 lib 與 webapps 目錄。struts-example.war 複製至 Tomcat webapps,啟動 Tomcat 自動解壓。https://localhost:8080/struts-example,若出現歡迎頁面即安裝成功。ActionServlet(核心控制器)+ 各具體 Action 類別。*.do 請求由 web.xml 映射至 ActionServlet。ActionServlet 讀取 struts-config.xml,依 path 找到對應 Action 類別。ActionForm,傳入 Action.execute()(或舊版 perform())。Action 執行業務邏輯,回傳 ActionForward 指定轉向頁面。ActionServlet 轉向 JSP 呈現結果。<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<form-bean name="logonForm" type="org.apache.struts.validator.DynaValidatorForm"/>
<action path="/logon"
type="org.apache.struts.webapp.example.LogonAction"
name="logonForm"
scope="request"
input="/logon.jsp">
<forward name="success" path="/mainMenu.jsp"/>
</action>
<global-forwards>
<forward name="success" path="/mainMenu.jsp"/>
</global-forwards>
public class LogonAction extends Action {
public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LogonForm logonForm = (LogonForm) form;
String username = logonForm.getUsername();
String password = logonForm.getPassword();
ActionErrors errors = new ActionErrors();
// 驗證邏輯...
if (!errors.empty()) {
saveErrors(request, errors);
return new ActionForward(mapping.getInput());
}
HttpSession session = request.getSession();
session.setAttribute(Constants.USER_KEY, user);
// 清除過期 Form Bean...
return mapping.findForward("success");
}
}
struts-blank.war 部署至 Tomcat 解壓,或手動解壓。META-INF(非 EAR 部署不需)。pages 目錄,Java 原始碼放 src,使用 Ant 編譯至 WEB-INF/classes。struts-config.xml、web.xml 即可開發。部署 struts-documentation.war 至 Tomcat 即可離線閱讀完整官方文件。