SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(1)
来源:互联网 发布:立二拆四 知乎 编辑:程序博客网 时间:2024/06/05 11:42
附录1:Struts校验框架
Struts校验框架,大体有如下几部分组成
1. 校验提示信息
2. 校验提交页面
3. 校验Form
4. Action
5. 校验配置文件文件
下面以实现一个用户登陆的例子讲解Struts校验框架的组成部分以及相关的写法.
要求用户登陆的时候,输入用户名和密码,再进行登陆.用户名和密码都不能为空,而且密码的长度必须大于6,且小于9.
具体实现步骤如下:
1. 编写校验提示信息资源文件
i) 在工程的src/cn/com/book/demo/struts目录下,添加一个ApplicationResource_temp.properties文件
ii) 在里面添加几条提示资源信息,内容如下:
login.username=用户名
login.password=密 码
login.login=登 陆
login.reset=重 置
error.required={0}必须输入
error.minlength={0}的长度必须大于{1}
error.maxlength={0}的长度必须小于{1}
其中有{}包含数字的表示参数,在具体应用中,将有别的值替代
iii) 在以前的ecoding.bat批处理文件里面,添加一行转换命令
native2ascii -encoding gb2312
ApplicationResources_temp.properties ApplicationResources_zh_CN.properties
iv) 运行ecoding.bat命令,生成一个ApplicationResource_zh_CN.properties文件
v) 刷新工程,重新编译
2. 编写校验Form
i) 打开struts-config.xml设计器
ii) 在设计器上,点击鼠标右键->New->Form,出现如下界面
并如图上样式,在输入框内输入各自的值,Superclass选择org.apache.struts.validator.validatorForm选项,点击Finish
iii) 打开刚刚生成的LoginForm.java文件,添加userName和password两个属性,以及对应的set和get方法,删除自动生成的validate方法和reset方法.代码如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.com.book.demo.struts.form;
import org.apache.struts.validator.ValidatorForm;
/**
* MyEclipse Struts
* Creation date:
*
* XDoclet definition:
* @struts.form name="loginForm"
*/
public class LoginForm extends ValidatorForm {
private String userName;
private String password;
/*
* Generated Methods
*/
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
iv)
3. 编写login.jsp文件
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<html:form action="/login.do" onsubmit="validateLoginForm(this)">
<bean:message key="login.username"/>:<html:text property="userName"></html:text><br/>
<bean:message key="login.password"/>:<html:password property="password"></html:password><br/>
<html:submit><bean:message key="login.login"/></html:submit>
<html:reset><bean:message key="login.reset"/></html:reset>
</html:form>
<html:javascript formName="loginForm"/>
</body>
</html>
代码注意事项:
i) 粗体部分,是校验框架在jsp中必须的代码
ii) Form里面的<html:text> 和<html:password>的property值,必须同LoginForm.java里面添加的两个属性一致
iii) <html:form>里面的action值,必须同struts-config.xml里面配置的登陆action的path值一致
4. 编写LoginAction.java代码如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.com.book.demo.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.com.book.demo.struts.form.LoginForm;
/**
* MyEclipse Struts
* Creation date:
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true"
* @struts.action-forward name="error" path="/login.jsp"
* @struts.action-forward name="success" path="/userList.do"
*/
public class LoginAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("***************");
String path = "error";
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String userName = loginForm.getUserName();
String password = loginForm.getPassword();
if(userName != null && password != null && password.length()>6 && password.length()<9){
path = "success";
}
return mapping.findForward(path);
}
}
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(1)
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(2)
- SSH(struts+spring+hibernate)迅速开发--附录2 Struts 常用标签&国际化(1)
- SSH(struts+spring+hibernate)迅速开发--第七章 用户注册的表单校验(1)
- SSH(struts+spring+hibernate)迅速开发--附录2 Struts 常用标签&国际化(2)
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(1)
- SSH(struts+spring+hibernate)迅速开发--附录7 SSH libs冲突解决
- SSH(struts+spring+hibernate)迅速开发--第七章 用户注册的表单校验(2)
- SSH(struts+spring+hibernate)迅速开发--第七章 用户注册的表单校验(3)
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(2)
- SSH(struts+spring+hibernate)迅速开发--第四章 改造DAO(1)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(1)
- SSH(struts+spring+hibernate)迅速开发--第八章 浏览和选购商品(1)
- SSH(struts+spring+hibernate)迅速开发--第九章 下订单(1)
- SSH(struts+spring+hibernate)迅速开发--第十章 记录日志(1)
- SSH(struts+spring+hibernate)迅速开发--第三章 生成POJO对象和表映射(1)
- SSH(struts+spring+hibernate)迅速开发--第四章 改造DAO(2)
- SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(2)
- 数据转换
- Vega Prime自学笔记(2)LP界面构成
- Vega Prime自学笔记(1)基本概念
- Flex初学者群(54200135)共享资料清单-----2008.1.24
- Python如何获得Erlang的威力
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(1)
- 不同的时间格式 显示
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(2)
- Java Message Service 介绍
- Struts原理、开发及项目实施
- 使用dojo declare(继承v102版本) 时出现无法根据id获取到对象的问题
- wince|ppc|wm5检测SD卡插拔问题收集
- 实现PostgreSQL数据库服务器的负载均衡
- 直接用Response输出可以加批注的Excel