struts2的数据校验&常用OGNL表达式&ActionSupport

数据校验

struts2 的后台校验

注意: 文件名必须是UserAction-user_register-validation.xml
即格式:[Action名]-[对应的action]-validation.xml
1. 在这里校验的加过会存储在struts的值栈中
2. 在jsp界面使用 <s:field fieldName=""/> 标签显示对应的错误信息
3. 在struts.xml文件中必须配置 <result name="input">/WEB-INF/jsp/register.jsp</result>

示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
    <!-- 校验用户名 -->
    <field name="username">
        <field-validator type="requiredstring">
            <message>用户名不能为空!</message>
        </field-validator>
    </field>
    <!-- 校验邮箱 -->
    <field name="email">
        <field-validator type="email">
            <message>邮箱格式不正确!</message>
        </field-validator>
    </field>
</validators>

这里示例校验的是User类的字段包报的位置:
这里写图片描述

前台jsp界面显示

配置标签:
1. <s:fielderror fieldName="password"/>:对应struts的数据校验xml的配置字段
2. <s:actionerror/>:在Action类中定义的this.addActionError("xxx")方法
3.<s:actionmessage/> 对应 this.addActionMessage("xxx")方法

常用 OGNL表达式

  1. 判断<s:if test=""/>xxx<s:if><s:else>xxx<s:else>
  2. 在jsp页面获得session的值

    • <s:property value="#session.xxx" />
  3. Actionimplements RequestAware并实现默认方法

private Map<String, Object>request;
    public void setRequest(Map<String, Object> arg0) {
        this.request = arg0;

    }
 request.put("xxx",xxx);
  1. jsp页面回显:
#request.xxx

ActionSupport中包含的对象

ServletActionContext和

获得request和respone对象

ServletActionContext.getRequest().getSession()                 .setAttribute("xxx",xxx);

jsp页面引用session中存放的值
#session.xxx

ActionContext

  • 值栈中存值:ActionContext.getContext().getValueStack().set("xxx", xxx);
    jsp页面引用
    知识通过变量名引用
<s:property value="xxx" />
  • ModelDriven模型驱动
    首先在action中已经实现了bean对象的模型驱动
    例如:
    public class ProductAction extends ActionSupport implements ModelDriven{
    //模型驱动
    private Product product = new Product();
    public Product getModel() {
    return product;
    }
    }
<s:property value="model.product" />
  • session中存值:ActionContext.getContext().getSession().put(key, value)
    在jsp页面获得xxx的值:
<s:property value="#session.xxx" />
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值