Struts 框架实例 对象形式 ActionBean

08/16/2010

本节主要知识点:实体对象形式的 ActionBean 属性

实例:模拟用户注册过程

  • 建立工程
  • 引入 Struts 类库
  • 编写 用户信息 的 javabean (User.java)
  • public class User {
    	private String userName;
    	private String userPass;
    	//...
    }

  • 编写 Model 层代码 (RegModel.java)
  • /**
     * 简化注册过程
     * 用户名与密码相同表示注册成功,否则表示注册失败!
     * @param user
     * @return
     */
    public class RegModel {
    	public boolean regUser(User user) {
    		return user.getUserName().equals(user.getUserPass());
    	}
    }
  • 创建页面
  • <!-- index.jsp -->
    <%@ page language="java" pageEncoding="gb2312"%>
    <form action="regAction.do" method="post">
    	<table>
    		<tr>
    			<td>username</td>
    			<!--控件名称:对象.属性名-->
    			<td><input type="text" name="user.userName" /></td>
    		</tr>
    		<tr>
    			<td>userpass</td>
                            <!--控件名称:对象.属性名-->
    			<td><input type="text" name="user.userPass" /></td>
    		</tr>
    		<tr>
    			<td colspan="2"><input type="submit" value="Reg"/></td>
    		</tr>
    	</table>
    </form>
    
    <!-- result.jsp -->
    <%@ page language="java" pageEncoding="gb2312"%>
    <h1>${result}</h1>
  • 为表单编写 ActionForm,用以保存表单中的数据
  • regdemoactionform
    注意:如果 ActionForm 对象属性 为 对象类型 则必须编辑 Struts 生成的 ActionForm 类对其进行实例化

    //...
    public class RegForm extends ActionForm {
    	/*
    	 * Generated fields
    	 */
    
    	/** 对ActionForm 属性进行实例化*/
    	private User user = new User();
    //...
  • 创建Action(子控制器),用以处理业务流程
  • 	//....
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		RegForm regForm = (RegForm) form;
    		// 从 ActionBean 中取得 用户数据的对象
    		User user = regForm.getUser();
                    //调用模型 实现注册并将结果保存至 REQUEST 作用域
    		RegModel regModel = new RegModel();
    		if (regModel.regUser(user)) {
    			request.setAttribute("result", "注册成功!");
    		}
    		else {
    			request.setAttribute("result", "注册失败");
    		}
                    //实现跳转
    		return mapping.findForward("result");
    	}
    	//....
  • 运行调试程序