概述
详解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中的代码:
<form method="post" action="adduser.do">
<table>
<tr><td>用户名:</td><td><input type="text"
name="userName"></td></tr>
<tr><td>密码:</td><td><input type="password" name="pwd"></td></tr>
<tr><td colspan="2"><input type="submit" value="提交"></td></tr>
</table>
</form>
首先从adduser.do(adduser.do会把其中的userName和pwd属性也一起带走)
开始,p然后寻找到struts-config.xml中找到对应的adduser,然后对应的找到
类AddUserAction,这个时候adduser.do一起带过来的userName和pwd属性会存
放到user中(注意到:user类中也必须要有其对应的属性,不然不能接收),
转到AddUserAction类中!
struts-config.xml文件中的代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="user" type="myuser.User"></form-
bean>
</form-beans>
<action-mappings>
<action path="/adduser" type="myuser.AddUserAction"
name="user">
<forward name="list"
path="/userlist.jsp"></forward>
</action>
</action-mappings>
</struts-config>
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中一定要有:
<param-value>/WEB-INF/struts-config.xml </param-value>
不写这句话或者写错了,都会报找不到路径的错误,这个web.xml是和
struts-config.xml文件密切相关的!
action中return null:表示不跳转,action中可以通过response对象进行输出
(1)global forwards:配置全局转向目的地(forward)
如:
<global-forwards>
<forward name="list" path="/userlist.jsp"></forward>
</global-forwards>
(2)formbean命名的问题,不要搞的太复杂,一般不再变量名后面加上Form
(3)action的命名方式:
如:
<action path="/adduser" type="myuser.AddUserAction"
name="user">
在AddUserAction类中的execute方法中调用DAO层中的addUser方法将用户输入
的信息存放到数据库中!
最后
以上就是坦率纸鹤为你收集整理的详解Struts1.x的运行机制及注册模块例子和命名规则(以此例子来说明struts1.x的运行机制)的全部内容,希望文章能够帮你解决详解Struts1.x的运行机制及注册模块例子和命名规则(以此例子来说明struts1.x的运行机制)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复