J2EE框架——Struts2高级

小可将给大家介绍Struts2框架内建的类型转换器,服务器端校验

一.Struts2内建类型转换器

1.基本类型转换器:
boolean和Boolean,char和Character,int和Integer,long和Integer,float和Float,double和Double
用来定义数据即可,Struts2自动校验,不再赘述

2.数组类型转换器
Struts2还提供多个表单元素name属性相同的处理办法,提交参数会转换成一个字符串数组

<s:textfield name="names" label="name1"></s:textfield>
<s:textfield name="names" label="name2"></s:textfield>

//在Action中用String数组取得
public String[ ] getNames(){
    return names;
}

//输出:
<s:property value="names" />

3.集合类型转换器
集合同样可以返回数组值

//在Action中定义list
private ArrayList<String> names = new ArrayList<String>();
public ArrayList<String> getNames(){
    return names;
}

二.服务器端校验

1.服务器端校验的重要性
注册界面可以添加客户端校验,但客户端校验就像一把锁,防君子而不能防小人。黑客可以轻易绕开前端校验直接攻击网站内部,所以服务器校验必不可少,它和前端校验形成网站构建时期的双保险

2.完成服务器端输入校验

//register.jsp
<s:form action="register">
    <s:textfield name="username" label="用户名"></s:textfield>
    <s:password name="password" label="密码"></s:password>
    <s:password name="repassword" label="确认密码"></s:password>
    <s:textfield name="age" label="年龄"></s:textfield>
    <s:textfield name="birth" label="出生日期"></s:textfield>
    <s:textfield name="email" label="邮箱"></s:textfield>
    <s:submit value="注册"></s:submit>
</s:form>



/** RegisterAction.java */
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Pattern;
import com.opensymphony.xwork.ActionSupport;

public class RegisterAction extends ActionSuppot{
    private String username;
    private String password;
    private String repassword;
    private int age;
    private Date birth;
    private String email;
    //省略get和set方法
    public String execute() throws Exception{
        return SUCCESS;
    }
}



//RegisterAction-validation.xml

<validators>
    //username校验
    <validator type="requiredstring" short-circuit="true">
        <param name="fieldName">username</param>
    <param name="trim">true</param>
        <message>必须输入用户名</message>
    </validator>

    //username长度在6到20之间
    <validator type="regex" short-circuit="true">
        <param name="fieldName">username</param>
        <param name="expression"><![CDATA[(\w{6,20})]]></param>
        <message>用户名长度必须在620之间</message>
    </validator>

    /**password输入*/
    <validator type="requiredstring" short-circuit="true">
        <param name="fieldName">password</param>
        <param name="trim">true</param>
        <message>必须输入密码</message>
    </validator>
    /**密码长度*/
    <validator type="regex" short-circuit="true">
        <param name="fieldName">password</param>
        <param name="expression"><![CDATA[(\w{6,20})]]></param>
        <message>密码长度必须在620位</message>
    </validator>

    /**repassword*/
     <validator type="requiredstring" short-circuit="true">
        <param name="fieldName">repassword</param>
        <param name="trim">true</param>
        <message>必须输入确认密码</message>
    </validator>
    /**密码长度*/
    <validator type="regex" short-circuit="true">
        <param name="fieldName">repassword</param>
        <param name="expression"><![CDATA[(repassword==password)]]></param>
        <message>密码和确认密码必须一致</message>
    </validator>

    /**age*/
    <validator type="int">
        <param name="fieldName">age<//param>
        <param name="min">1</param>
        <param name="max">120</param>
        <message>年龄必须在${min}到${max}之间</message>
    </validator>

    /**birth*/
    <validator type="date" >
        <param name="fieldName">birth</param>
        <param name="min">1900-01-01</param>
        <param name="max">2015-01-01</param>
        <message>出生日期在${min}到${max}之间</message>
    </validator>

    /**email*/
    <validator type="email">
        <param name="fieldName">email</param>
        <message>请输入有效电子邮箱地址</message>
    </validator>
</validators>

说明:

  • required:必填校验器
  • requiredstring:必填字符串校验器
  • int:整数。。。
  • double:双精度浮点数。。
  • email:电子邮箱校验器
  • url:网址校验器
  • regex:正则表达式校验器
  • short-circuit=”true”:校验短路,只要有一个出错,不再向下校验,给用户更好体验
  • getTest(“username.rule”):添加国际化信息,并且防止和客户端国际化冲突,小可在此先不添加,有兴趣的小伙伴可百度自行添加

自定义校验器,可以在Web工程的WEB-LIB\lib目录下添加相应的xml文件

注意:如果使用自定义的xml配置文件,则系统默认的default.xml配置文件不会加载,所以需要将default.xml的内容复制到validators.xml配置文件中。否则不能使用系统内建的校验器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值