Struts 1 是基於 Servlet/JSP 的 MVC 框架,核心組件:
*.do 請求。ActionForward 決定導向。package formbeans;
import org.apache.struts.action.ActionForm;
public class LoginActionForm extends ActionForm {
private String username;
private String userpass;
// getter/setter 略
}
屬性名需與 JSP name 完全一致,Struts 自動注入。
package actions;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) {
LoginActionForm f = (LoginActionForm) form;
String u = f.getUsername(), p = f.getUserpass();
String forward = ("123".equals(u) && "123".equals(p)) ? "success" : "error";
return mapping.findForward(forward);
}
}
<struts-config>
<form-beans>
<form-bean name="loginActionForm" type="formbeans.LoginActionForm"/>
</form-beans>
<action-mappings>
<action path="/login" name="loginActionForm" type="actions.LoginAction">
<forward name="success" path="/success.jsp"/>
<forward name="error" path="/wrong.jsp"/>
</action>
</action-mappings>
</struts-config>
關鍵對應:
action path="/login" 對應表單 action="login.do"name="loginActionForm" 對應 <form-bean> 名稱forward name 對應 Action 回傳字串login.jsp
<form method="post" action="login.do">
請輸入姓名:<input type="text" name="username" /><br/>
請輸入密碼:<input type="password" name="userpass" /><br/>
<input type="submit" value="Submit"/>
<input type="reset" value="Reset"/>
</form>
success.jsp / wrong.jsp 依需求顯示成功或失敗訊息。
啟動 Tomcat,訪問 https://localhost:8080/Struts1_Login/login.jsp

path 找 Action → 自動建立/取得 FormBean → 填入表單資料 → 呼叫 execute()。ActionForward,Struts 依 struts-config.xml 找 forward name 對應 path 並 forward(預設)或 redirect。ActionForm 屬性名 = JSP name = 表單欄位名,三者一致才能自動封裝。掌握此流程,即可展開後續驗證、國際化、資料庫整合等進階主題。