Struts2输入校验(一) validate要领-validateXxx要领
当前位置:以往代写 > JAVA 教程 >Struts2输入校验(一) validate要领-validateXxx要领
2019-06-14

Struts2输入校验(一) validate要领-validateXxx要领

Struts2输入校验(一) validate要领-validateXxx要领

副标题#e#

这是一种编码校验的要领, 我重写ActionSupport父类的validate要领来实现 .

Action执行时必然会执行validate要领, 若有不及格的输入 就挪用addFieldError ("age", "年领应在0-200之间");要领.

1 login.jsp

HTML标签:

Html代码

错误信息 :<s:fielderror ></s:fielderror>

<form action="login.action" method="post">

用户名:<input type="text" name="username" value="${username}"/><br>

年 龄:<input type="text" name="age" value="${age} "/><br>

生 日:<input type="text" name="birthday" value="${birthday}"/><br>

点工具:<input type="text" name="point" value="${point} "/><br>

<input type="submit" value="提交"/>

</form>
struts2标签

Html代码

<s:form action="login">

<s:textfield name="username" label="用户名 "></s:textfield>

<s:textfield name="age" label="年 龄 "></s:textfield>

<s:textfield name="birthday" label="生 日 "></s:textfield>

<s:textfield name="point" label="点工具 "></s:textfield>

<s:submit></s:submit>

</s:form>

2 LoginAction.java

Java代码

package ssh.org.web;

import java.util.Date;

import java.util.List;

import ssh.org.util.Point;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport

{

/**

*

*/

private static final long serialVersionUID = 1L;

private String username;

private int age;

private Date birthday;

private List<String> aihao;

@Override

public String execute() throws Exception

{

return "success";

}

@Override

public void validate()

{

if (age < 0 || 200 < age)

{

addFieldError("age", "年领应在0-200之间");

}

}

}

 

看上面的validate()要领,很简捷,因为少了范例转换,这个事情由Struts2内建的范例转换器把请 求参数转换为所必要的范例.


#p#副标题#e#

3 功效

Struts2输入校验(一) validate方式-validateXxx方式

validateXxx() 要领

一个Action可以包括多个处理惩罚逻辑

Java代码

public class UserAction extends ActionSupport
{
private static final long serialVersionUID = 1L;
private String username;
private int age;
private Date birthday;
private List<String> aihao;
public String addUser() throws Exception
{
//添加用户
return "success";
}
public void validateAddUser()
{
if (null == username || "".equals(username))
{
addFieldError("username", "用户名不能为空");
}
System.out.println("validateAddUser() 验证要领 ");
}
public String getUserList()
{
//取得所有用户
return "success";
}
public void validateGetUserList()
{
//验证要明确…
System.out.println("validateAddUser() 验证要领 ");
}
// –测试用
@Override
public String execute() throws Exception
{
return "success";
}
@Override
public void validate()
{
if (age < 0 || 200 < age)
{
addFieldError("age", "年领应在0-200之间");
}
System.out.println("~~~~~~根基~~~~~ ");
}
}

上面的就有三个处理惩罚业务的要领addUser(),getUserList(),execute()

addUser(),getUserList() 要领别离有 差异的验证 要领:validateAddUser(),validateGetUserList() , 也就是validateXxx() 要领.

业务要领叫什么, 验证要领就叫validate+ 业务要领名(首字母大 写)

这样, 在执行某个 业务要领,就会执行与它同名的验证要领,执行addUser()这前就会查抄有没有validateAddUser()要领, 有就执行之.

其实有了addUser(),getUserList()这两要领, execute()就可以不要, 但我为了说明一个多个validate要领执行的顺序, 照旧加上了.

岂论执行addUser()照旧getUserList()要领,validate()要领必然会执行, 这是我们不想要的, 有两办理 要领:

1 不写execute() , 也就不消写validate()要领

2 写execute(),把 validate() 更名为validateExecute().

    关键字:

在线提交作业