- 浏览: 239926 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (101)
- js (10)
- java (39)
- HTTP请求:GET与POST方法的区别(转) (1)
- Freemarker 语法规则 (1)
- AJAX级联菜单实例 (1)
- oralce (1)
- myeclipse (5)
- struts (12)
- sql存储过程基础(转) (4)
- JBPM (1)
- mysql (4)
- hibernate (3)
- ibatis (4)
- spring (4)
- 计算机技术 (1)
- nosql (1)
- sqlserver (1)
- servlet (1)
- 拦截器 (1)
- andriod 开发 (1)
- 程序员 (0)
- 多线程 (2)
- Jenkins (1)
- zk (1)
- JPA (2)
最新评论
-
zhangzh888:
怎么下载 啊 都没有看见文件
sftp处理文件 -
wx_hello:
怎么得到文件的属性呢? 比如文件的新建时间
sftp处理文件 -
HappyVeryGood:
“运行时异常(即非受控异常)自动强制执行整个逻辑工作单元的回滚 ...
事物管理,spring事物详解,spring @transactional -
skeely1234:
感谢分享,太帅了
eclipse下修改项目名导致tomcat内发布名不一致的解决方法
ActionForm的代码校验
ActionForm的代码校验是最基本的校验方式。这种校验方式是重写ActionForm的validate方法,在该方法内对所有的字段进行基本的校验。如果出现不符合要求的输出,则将出错提示封装在ActionError对象里,最后将多个ActionError组合成ActionErrors对象,给对象里封装了全部的出错信息。
以登陆页面为例,下面是重写了Validate方法的ActionForm的代码:
Java代码
1.import javax.servlet.http.HttpServletRequest;
2.
3.import org.apache.struts.action.ActionError;
4.import org.apache.struts.action.ActionErrors;
5.import org.apache.struts.action.ActionForm;
6.import org.apache.struts.action.ActionMapping;
7.
8.public class LoginActionForm extends ActionForm {
9.
10. private static final long serialVersionUID = 1L;
11. private String username;
12. private String password;
13.
14. public String getUsername() {
15. return username;
16. }
17. public void setUsername(String username) {
18. this.username = username;
19. }
20. public String getPassword() {
21. return password;
22. }
23. public void setPassword(String password) {
24. this.password = password;
25. }
26.
27. //重写validate方法,完成数据校验
28. @SuppressWarnings("deprecation")
29. @Override
30. public ActionErrors validate(ActionMapping mapping,
31. HttpServletRequest request) {
32. //ActionErrors用于包装所有的出错信息
33. ActionErrors errors = new ActionErrors();
34. //如果用户名为空
35. if((username == null)||(username.equals(""))) {
36. //error.username对应资源文件中的key,用户名是对应资源文件的第一个参数
37. errors.add("username", new ActionError("error.username","用户名"));
38. }
39. //如果密码为空
40. if((password == null )||(password.equals(""))) {
41. errors.add("password", new ActionError("error.password","密码"));
42. }
43. //返回封装了所有的出错信息
44. return errors;
45. }
46.}
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginActionForm extends ActionForm {
private static final long serialVersionUID = 1L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//重写validate方法,完成数据校验
@SuppressWarnings("deprecation")
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
//ActionErrors用于包装所有的出错信息
ActionErrors errors = new ActionErrors();
//如果用户名为空
if((username == null)||(username.equals(""))) {
//error.username对应资源文件中的key,用户名是对应资源文件的第一个参数
errors.add("username", new ActionError("error.username","用户名"));
}
//如果密码为空
if((password == null )||(password.equals(""))) {
errors.add("password", new ActionError("error.password","密码"));
}
//返回封装了所有的出错信息
return errors;
}
}
在JSP页面中值需要更改一处即可****之间的部分:
Jsp代码
1.<%@ page language="java" contentType="text/html; charset=GB2312" errorPage="error.jsp"%>
2.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3.<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
4.<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
5.<html>
6. <head>
7. <!-- 使用国际化资源文件的key输出标题 -->
8. <title><bean:message key="login"/></title>
9. </head>
10. <!-- 下面的标签用于输出出错信息 -->
11. <!-- *******************************************-->
12. <html:errors/>
13. <!-- ******************************************* -->
14. <body>
15. <font color="red">
16. <%
17. //用于输出出错信息,出错信息保存在request的err属性中
18. if(request.getAttribute("err")!=null) {
19. out.println(request.getAttribute("err"));
20. }
21. %>
22. </font>
23. <br><br>
24. <!-- 下面是登陆表单 -->
25. 请输入用户名和密码:<hr>
26. <html:form action="login.do" method="post">
27. <bean:message key="username" />:<html:text property="username" />
28. <br>
29. <bean:message key="password" />:<html:text property="password" />
30. <br>
31. <html:submit>
32. <bean:message key="login"/>
33. </html:submit>
34. <br>
35. </html:form>
36. </body>
37.</html>
<%@ page language="java" contentType="text/html; charset=GB2312" errorPage="error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<html>
<head>
<!-- 使用国际化资源文件的key输出标题 -->
<title><bean:message key="login"/></title>
</head>
<!-- 下面的标签用于输出出错信息 -->
<!-- *******************************************-->
<html:errors/>
<!-- ******************************************* -->
<body>
<font color="red">
<%
//用于输出出错信息,出错信息保存在request的err属性中
if(request.getAttribute("err")!=null) {
out.println(request.getAttribute("err"));
}
%>
</font>
<br><br>
<!-- 下面是登陆表单 -->
请输入用户名和密码:<hr>
<html:form action="login.do" method="post">
<bean:message key="username" />:<html:text property="username" />
<br>
<bean:message key="password" />:<html:text property="password" />
<br>
<html:submit>
<bean:message key="login"/>
</html:submit>
<br>
</html:form>
</body>
</html>
由于在本项目中用到了资源文件,因为有了资源文件的支持,JSP页面只需要简单的<html:errors/>标签就可以生成全部的出错信息,下面是资源文件:
资源文件代码
1.# -- standard errors --
2.username=用户名
3.password=密码
4.login=登陆
5.noname=请输入用户名,然后在登陆
6.nopassword=请输入密码,然后在登陆
7.#html:errors将自动加载errors.header作为出错提示标题
8.errors.header=<h3><font color="red">验证出错</font></h3>你必须按以下提示修改你的输入才能继续....
9.error.username={0} 必须填写.<br>
10.error.password={0} 必须填写.<br>
11.#html:errors将自动加载errors.footer作为出错的最后一行
12.errors.footer=<h3><font color="green">你完成上面提示部分</font></h3>
# -- standard errors --
username=用户名
password=密码
login=登陆
noname=请输入用户名,然后在登陆
nopassword=请输入密码,然后在登陆
#html:errors将自动加载errors.header作为出错提示标题
errors.header=<h3><font color="red">验证出错</font></h3>你必须按以下提示修改你的输入才能继续....
error.username={0} 必须填写.<br>
error.password={0} 必须填写.<br>
#html:errors将自动加载errors.footer作为出错的最后一行
errors.footer=<h3><font color="green">你完成上面提示部分</font></h3>
注:在action跳转的地方添加input和是否验证的标签
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy"
name="loginForm"
scope="request"
validate="true" input="/login.jsp"
>
ActionForm的代码校验是最基本的校验方式。这种校验方式是重写ActionForm的validate方法,在该方法内对所有的字段进行基本的校验。如果出现不符合要求的输出,则将出错提示封装在ActionError对象里,最后将多个ActionError组合成ActionErrors对象,给对象里封装了全部的出错信息。
以登陆页面为例,下面是重写了Validate方法的ActionForm的代码:
Java代码
1.import javax.servlet.http.HttpServletRequest;
2.
3.import org.apache.struts.action.ActionError;
4.import org.apache.struts.action.ActionErrors;
5.import org.apache.struts.action.ActionForm;
6.import org.apache.struts.action.ActionMapping;
7.
8.public class LoginActionForm extends ActionForm {
9.
10. private static final long serialVersionUID = 1L;
11. private String username;
12. private String password;
13.
14. public String getUsername() {
15. return username;
16. }
17. public void setUsername(String username) {
18. this.username = username;
19. }
20. public String getPassword() {
21. return password;
22. }
23. public void setPassword(String password) {
24. this.password = password;
25. }
26.
27. //重写validate方法,完成数据校验
28. @SuppressWarnings("deprecation")
29. @Override
30. public ActionErrors validate(ActionMapping mapping,
31. HttpServletRequest request) {
32. //ActionErrors用于包装所有的出错信息
33. ActionErrors errors = new ActionErrors();
34. //如果用户名为空
35. if((username == null)||(username.equals(""))) {
36. //error.username对应资源文件中的key,用户名是对应资源文件的第一个参数
37. errors.add("username", new ActionError("error.username","用户名"));
38. }
39. //如果密码为空
40. if((password == null )||(password.equals(""))) {
41. errors.add("password", new ActionError("error.password","密码"));
42. }
43. //返回封装了所有的出错信息
44. return errors;
45. }
46.}
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginActionForm extends ActionForm {
private static final long serialVersionUID = 1L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//重写validate方法,完成数据校验
@SuppressWarnings("deprecation")
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
//ActionErrors用于包装所有的出错信息
ActionErrors errors = new ActionErrors();
//如果用户名为空
if((username == null)||(username.equals(""))) {
//error.username对应资源文件中的key,用户名是对应资源文件的第一个参数
errors.add("username", new ActionError("error.username","用户名"));
}
//如果密码为空
if((password == null )||(password.equals(""))) {
errors.add("password", new ActionError("error.password","密码"));
}
//返回封装了所有的出错信息
return errors;
}
}
在JSP页面中值需要更改一处即可****之间的部分:
Jsp代码
1.<%@ page language="java" contentType="text/html; charset=GB2312" errorPage="error.jsp"%>
2.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3.<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
4.<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
5.<html>
6. <head>
7. <!-- 使用国际化资源文件的key输出标题 -->
8. <title><bean:message key="login"/></title>
9. </head>
10. <!-- 下面的标签用于输出出错信息 -->
11. <!-- *******************************************-->
12. <html:errors/>
13. <!-- ******************************************* -->
14. <body>
15. <font color="red">
16. <%
17. //用于输出出错信息,出错信息保存在request的err属性中
18. if(request.getAttribute("err")!=null) {
19. out.println(request.getAttribute("err"));
20. }
21. %>
22. </font>
23. <br><br>
24. <!-- 下面是登陆表单 -->
25. 请输入用户名和密码:<hr>
26. <html:form action="login.do" method="post">
27. <bean:message key="username" />:<html:text property="username" />
28. <br>
29. <bean:message key="password" />:<html:text property="password" />
30. <br>
31. <html:submit>
32. <bean:message key="login"/>
33. </html:submit>
34. <br>
35. </html:form>
36. </body>
37.</html>
<%@ page language="java" contentType="text/html; charset=GB2312" errorPage="error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<html>
<head>
<!-- 使用国际化资源文件的key输出标题 -->
<title><bean:message key="login"/></title>
</head>
<!-- 下面的标签用于输出出错信息 -->
<!-- *******************************************-->
<html:errors/>
<!-- ******************************************* -->
<body>
<font color="red">
<%
//用于输出出错信息,出错信息保存在request的err属性中
if(request.getAttribute("err")!=null) {
out.println(request.getAttribute("err"));
}
%>
</font>
<br><br>
<!-- 下面是登陆表单 -->
请输入用户名和密码:<hr>
<html:form action="login.do" method="post">
<bean:message key="username" />:<html:text property="username" />
<br>
<bean:message key="password" />:<html:text property="password" />
<br>
<html:submit>
<bean:message key="login"/>
</html:submit>
<br>
</html:form>
</body>
</html>
由于在本项目中用到了资源文件,因为有了资源文件的支持,JSP页面只需要简单的<html:errors/>标签就可以生成全部的出错信息,下面是资源文件:
资源文件代码
1.# -- standard errors --
2.username=用户名
3.password=密码
4.login=登陆
5.noname=请输入用户名,然后在登陆
6.nopassword=请输入密码,然后在登陆
7.#html:errors将自动加载errors.header作为出错提示标题
8.errors.header=<h3><font color="red">验证出错</font></h3>你必须按以下提示修改你的输入才能继续....
9.error.username={0} 必须填写.<br>
10.error.password={0} 必须填写.<br>
11.#html:errors将自动加载errors.footer作为出错的最后一行
12.errors.footer=<h3><font color="green">你完成上面提示部分</font></h3>
# -- standard errors --
username=用户名
password=密码
login=登陆
noname=请输入用户名,然后在登陆
nopassword=请输入密码,然后在登陆
#html:errors将自动加载errors.header作为出错提示标题
errors.header=<h3><font color="red">验证出错</font></h3>你必须按以下提示修改你的输入才能继续....
error.username={0} 必须填写.<br>
error.password={0} 必须填写.<br>
#html:errors将自动加载errors.footer作为出错的最后一行
errors.footer=<h3><font color="green">你完成上面提示部分</font></h3>
注:在action跳转的地方添加input和是否验证的标签
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy"
name="loginForm"
scope="request"
validate="true" input="/login.jsp"
>
- spring_struts_21.rar (6 MB)
- 下载次数: 12
发表评论
-
Struts1 DispatchAction实现一个action处理多个请求
2012-08-09 13:54 1520Struts1 DispatchAction 原文地址:ht ... -
spring+struts集成,spring+hibernate集成要点
2012-08-07 15:27 1064spring+struts的集成(第一种集成方案) 原理:在A ... -
(转)struts1.x与spring集成方式
2012-08-06 17:16 0方式一:Action交给spring ... -
commons-validator
2011-11-30 16:51 11631.导入jar包:将commons-validator.jar ... -
LookupDispatchAction类处理一个form多个submit
2011-11-24 17:43 1161ACTION中重定向 @Overridepublic ... -
关于struts1.2 的跳转方法的跳转的实践
2011-11-24 17:23 3426最近因为工作的原因,重新接触的strut1.2,对 ... -
Struts1 jar 包说明
2011-11-24 10:21 950Struts相关包 antlr.jar ANTLR(ANoth ... -
struts1.x struts-config.xml配置详解 (转)
2011-11-21 16:57 792以下是一份完整的struts-config.xml文件,配置元 ... -
Struts1 : DispatchAction 的使用
2011-11-21 16:47 1464今天在看一个 Struts 代码时,发现 Action 类继承 ... -
struts result的返回结果解析
2011-11-09 11:23 1341Struts2支持的不同类型的 ... -
BaseAction的缓冲封装
2011-09-24 17:48 1116在baseAction中对数据进行get和set方法,然后在一 ...
相关推荐
struts验证,Actionfrom的表单验证
- **ActionFrom**:ActionForm对象主要用于封装用户提交的数据,它实际上就是一个JavaBean,可以存储用户表单中的各个字段值。 - **验证机制**:ActionServlet会根据`struts-config.xml`中的配置信息来决定是否需要...
在Struts框架中,ActionForm类是用于封装请求参数并传递到Action类进行业务逻辑处理的关键组件。...通过这种方式,Struts框架能够处理ActionForm中包含对象数组的场景,允许用户在一次表单提交中处理多个对象实例。
例如,在 Struts 框架中,Action 类主要负责处理用户的请求,例如接收请求参数,验证参数,并将其传递给 Service 层。 Service 层 Service 层是处理业务逻辑的层次,它主要负责处理业务逻辑,例如处理跨多个业务...
- UI层通过Struts实现,负责用户交互,使用MVC模式,ActionFrom用于封装用户输入,Action处理用户请求,ValidatorPlugIn则进行UI验证。 2. **多层结构优点**: - 层次分明,降低各层之间的耦合度,提高代码重用和...
在UI层,主要介绍了Struts框架,它是基于MVC模式,用于处理用户交互,通过ActionFrom和Action来封装用户请求并做出响应,同时使用ValidatorPlugIn进行前端验证。 接下来,课程重点讲解了Spring框架。Spring作为一个...
在示例中,Struts框架被用来实现UI层,通过ActionFrom和Action来处理用户请求和响应,并提供ValidatorPlugIn进行前端验证。 业务层负责处理具体的业务逻辑,以降低与其他系统的耦合。Spring框架在这里扮演了重要...
ActionFrom用于封装用户输入数据,Action处理用户请求并触发相应动作,ValidatorPlugIn则用于客户端验证,确保输入数据的有效性。 业务层是系统的核心,它包含了具体的业务逻辑。通过Spring框架,我们可以实现依赖...