📄 -+
字号:
今天接上回继续学习:
制作登录事件,其中使用了表单验证框架。
先增加资源文件内容
ApplicationResources.properties文件中加入
prompt.username=User Name
prompt.password=Password
button.logon=Logon
button.reset=Reset
ApplicationResources_zh_CN.properties文件中加入
prompt.username=用户名
prompt.password=密 码
button.logon=登录
button.reset=重置
建立ActionForm、Action、jps(logon.jsp)
Superclass中选择:org.apache.struts.validator.ValidatorForm
这将使用Validator框架对表单进行验证
创建一个jsp文件,logonContent.jsp
修改logon.jsp文件
logon.jsp 和 index.jsp 结构差不多
logon.jsp 中的代码如下:
<%@ include file = "/taglibs.jsp" %>
<%@ include file="/header.jsp" %>
<%@ include file = "logonContent.jsp" %>
<%@ include file="/footer.jsp" %>
修改logonContent.jsp文件,这里我使用已经改好的文件内容。
**现在得配置Validator框架对所提交的数据进行验证**
首先,配置struts-config.xml文件,以增加Validator框架
Validator是以Struts的插件型式进行增加的,在这里将使用向导进行增加
Plugin class: org.apache.struts.validator.ValidatorPlugIn
Set properties: 这里点Add然后输入以下内容
Property: pathnames
Value: /WEB-INF/validator-rules.xml,/WEB-INF/validation.xml
在WEB-INF目录中创建validation.xml文件 ,注意文件名称和上面的要对应
内容如下:
****************************************************************************************
<form-validation>
<!-- ========== Default Language Form Definitions ===================== -->
<formset>
<form name="logonForm">
<field property="userName" depends="required">
<arg0 key="prompt.username" />
</field>
<field property="userPwd" depends="required">
<arg0 key="prompt.password" />
</field>
</form>
</formset>
</form-validation>
****************************************************************************************
在资源文件中加入以下内容
ApplicationResources.properties文件中加入
errors.required={0} is required.
ApplicationResources_zh_CN.properties文件中加入
errors.required={0} 不能为空!
这两句是框架自行调用的。
现在修改ActionForm
将ActionForm中的validate改为validator
修改LogonForm中的reset事件
得把数据库给建了,用户密码从数据库中提取,和用户输入的密码对比。
数据名称为addressbook
这是创建脚本
CREATE TABLE `userlist` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`userpwd` varchar(30) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
用户注册的过程稍后再做
现在使用语句添加一用户
insert into userlist (username,userpwd) values ('sonic','sonic');
登录流程:
index --> logon --> mainMenu 这是正常事件流,还有可选事件流。
index --> logon -->(用户名或密码错误) logon ,登录信息不正确返回登录页再次登录。
打开LogonAction.java文件
增加以下内容
//获取提交的用户名称和密码
String userName=request.getParameter("userName");
String userPwd=request.getParameter("userPwd");
String mUserPwd=null;
Userlist ul=null;
//创建连接
Session session=SessionFactory.currentSession();
//创建事务
Transaction tx=session.beginTransaction();
//创建对话
Query query=session.createQuery("select u from Userlist as u where username='" +
userName + "'");
try{
Iterator it = query.iterate();
ul = (Userlist) it.next();
mUserPwd=ul.getUserpwd();
}catch (Exception e) {
System.out.println(e.getMessage());
}
//事务提交
tx.commit();
//关闭连接
SessionFactory.closeSession();
if(userPwd.equals(mUserPwd))
return (mapping.findForward("gomainMenu"));
else
return (mapping.findForward("rLogon"));
还没有做映射呢,现在添加吧。
连接部份是上一回所做的,现在就不重复了。
配置跳转
这里跳转到mainMenu.jsp,现在没有这个页面,所以得添加一个。。
以后将对这个页面进行修改,所以现在就用默认的就行了。
调试一下吧。
看上去很简单吧。
请耐心点,我也没办法。。
页面中有我的联系方法,在这里就不多说了。。
我的网页正在制作中,域名暂定为 www.qxyn.com,oksonic.dec.cn
使用Eclipse的导入方法将类库导入。
包内带有整个工程文件的源程序。
这就是表单验证框架起的做用,如果在测试中出现框架不起作用时,请将部署从Tomcat是移除后再重新部署。
这是我在试验时出现过的问题。
这是有意让它出错。页面将保持在当前页,应该说是跳转回当前页。。
Ok,通过验证了。。
也祝你成功。。。
下回见吧。。。未完待续!!!!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -