首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 框架入門:MVC 架構與註冊功能實戰

     編輯:Java 相關知識

Struts 1.x 的 MVC 映射

  • Model:JavaBean(User)+ 業務邏輯 Bean(UserBean)
  • View:JSP 頁面
  • Controller:ActionServlet(框架提供)+ struts-config.xml 映射請求到 Action

核心組件速寫

1. 領域模型

public class User implements Serializable {
    private String userName, passWord;
    // getter/setter 省略
}

2. 表單驗證

public class UserForm extends ActionForm {
    private User user = new User();
    public User getUser() { return user; }
    public void setUser(User user) { this.user = user; }
    // 直接代理 User 屬性
    public String getUserName() { return user.getUserName(); }
    public String getPassWord() { return user.getPassWord(); }

    @Override public void reset(ActionMapping m, HttpServletRequest r) { user = new User(); }

    @Override public ActionErrors validate(ActionMapping m, HttpServletRequest r) {
        ActionErrors errors = new ActionErrors();
        if (user.getUserName() == null || user.getPassWord() == null) {
            errors.add("error", new ActionMessage("error.user.passWord"));
        }
        return errors;
    }
}

3. Action 處理器

public class UserAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest req, HttpServletResponse res) throws Exception {
        UserForm uf = (UserForm) form;
        try {
            new UserBean().addUser(uf.getUser());
        } catch (Exception e) { e.printStackTrace(); }
        req.setAttribute("user", uf.getUser());
        return mapping.findForward("userCreated");
    }
}

4. 業務邏輯

public class UserBean {
    private Connection conn = DatabaseConn.getConnection(); // 需自行實現連接池
    public void addUser(User u) throws SQLException {
        Statement s = conn.createStatement();
        s.executeUpdate("INSERT INTO User VALUES('" + u.getUserName() + "','" + u.getPassWord() + "')");
    }
}

5. JSP 頁面

register.jsp:表單提交到 /register.do;viewUser.jsp:<%= ((User)request.getAttribute("user")).getUserName() %> 顯示結果。

6. 關鍵配置

<form-bean name="userForm" type="com.example.UserForm"/>
<action path="/register" type="com.example.UserAction"
        name="userForm" scope="request" validate="true" input="/register.jsp">
    <forward name="userCreated" path="/viewUser.jsp"/>
</action>

框架本質

Struts 如「填空題」:框架處理請求分發、表單填充、驗證、國際化、標籤庫等基礎設施,開發者只需實現 Action、Form、JavaBean、JSP 等業務「空白」。結構清晰、分工明確、易於維護擴展。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved