详解Struts1.x的运行机制及注册模块例子和命名规则(以此例子来说明struts1.x的运行机制)

详解Struts1.x及注册模块例子和命名规则(以此例子来说明struts1.x的运行


机制)


注册模块的例子:


1.编写JavaBean:User,必须继承于ActionForm类


2.在Struts-config.xml中注册User的对象user


FormBean概念:就是继承于ActionForm的JavaBean(在strtus框架中)


3.编写UserDAO类中的方法addUser(User user)


4.编写AddUserAction类,调用UserDAO类中addUser()方法,添加用户,
AddUserAction类必须继承Action类


5.配置AddUserAction的path,type,name,scope(如果不写在代码中,那就默认


scope的值为sessio,scope的值只能为session和request)forward等,添加成


功后直接转向userlist.jsp

(以上面的那个注册模块的例子为例)举个例子:
register.jsp中的代码:
用户名:
密码:
首先从adduser.do(adduser.do会把其中的userName和pwd属性也一起带走) 开始,p然后寻找到struts-config.xml中找到对应的adduser,然后对应的找到 类AddUserAction,这个时候adduser.do一起带过来的userName和pwd属性会存 放到user中(注意到:user类中也必须要有其对应的属性,不然不能接收), 转到AddUserAction类中! struts-config.xml文件中的代码: AddUserAction类中的代码: public class AddUserAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { User user = (User) form;///从用户输入的用户名和密码都是 存放到form中的(是因为在 ///struts-config.xml文件中指定了name="user",即用户输入 的用户名和密码都是存放到user中,也就是form UserDAO dao = new UserDAO(); dao.addUser(user);///通过dao的addUser方法写入数 据库中 return mapping.findForward("list"); } } UserDAO类中的代码: public class UserDAO { private Connection conn; public String sql; PreparedStatement ps; public UserDAO() { ///通过构造函数的初始化来进行连接数据库 conn = DBLib.getConnection(); } public void addUser(User user) { sql = "insert into users(userName,pwd) values(?,?)"; try { ps = conn.prepareStatement(sql); ps.setString(1, user.getUserName()); ps.setString(2, user.getPwd()); ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 在AddUserAction类中(必须继承Action类,而且要重写Action类中的execute 方法),此时struts-config.xml中代码也就是AddUserAction类中的form,然 后将其强制转换为user,两个属性也就带过来了,这时候就调用UserDAO类中 addUser方法将user写进数据库中,即便完成了整个struts框架的运行机制了 ! 需要特别注意到的:在配置web.xml中一定要有: /WEB-INF/struts-config.xml 不写这句话或者写错了,都会报找不到路径的错误,这个web.xml是和 struts-config.xml文件密切相关的!






action中return null:表示不跳转,action中可以通过response对象进行输出
(1)global forwards:配置全局转向目的地(forward)
如:
   


(2)formbean命名的问题,不要搞的太复杂,一般不再变量名后面加上Form
(3)action的命名方式:
    如:


name="user">
在AddUserAction类中的execute方法中调用DAO层中的addUser方法将用户输入


的信息存放到数据库中!


你可能感兴趣的:(struts1.0)