在action里取变量
在action的execute()方法里设置变量
return success;
在jsp里使用session 变量
<body>
${sessionScope.user}
</body>
在jsp使用action变量
Struts2所以变量存在 ValueStack里
例子:
<%@page import="java.util.*,com.opensymphony.xwork2.util.*"%>
<%
ValueStack vs=(AttributeJ("struts.valueStack");
//调用findValue方法获取值
String[] books=(String[])vs.findValue("books");
%>
action 的 validate() 用来校验jsp数据,前台jsp使用 S:标签可以校验数据 <!-- 输入类型转换失败提示和校验失败提示 -->
<s:fielderror key="username"/>
后台validate方法
public void validate()
{
//如果用户名为空 或者空串
if(getUsername()==null||getUsername().trim().equals("")){
//添加校验错误提示 使用getText()提示信息 国际化
addFieldError("username",getText("必须输入用户名"))
}
}
使用框架validator
编写验证规则配置文件
这是一个基于XML的配置文件,和struts1.x中的validator框架的验证规则配置文件类似。但一般放到和要验证的.class文件在同一目录下,而且配置文件名要使用如下两个规则中的一个来命名:
<ActionClassName>-l
<ActionClassName>-<ActionAliasName>-l
其中<ActionAliasName>就是l中<ation>的name属性值。在本例中我们使用第一种命名规则,所以文件名是l。文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"www.opensymphony/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="msg">
<field-validator type="requiredstring">
<message>请输入信息</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">20</param>
<message>
必须在 13至20之间
</message>
</field-validator>
</field>
</validators>
这个文件使用了两个规则:requiredstring(必须输入)和int(确定整型范围)
三. 基于验证框架的输入校验
1. 编写校验配置文件:命名规则:action类名-l.
2. 一个action对应多个逻辑处理方法:指定校验摸个特定方法的方式:
action类名-name属性名-l.(name属性名:在strtus配置文件中的)
3. 配置文件存放位置:放在与Action相同的文件夹内。
4. 验证规则:先加载action类名-l,然后加载action类名-name属性名-l文件。
5. 校
验器的配置风格:两种:字段校验器,非字段校验器。
字段校验器配置格式:
<field name="被校验的字段">
<field-validator type="校验器名">
<!--校验器是是投入太深指定的,此处需要为不同校验器指定数量不等的校验规则-->
<param name="参数名">参数值</param>
....................
<!--校验失败后的提示信息,其中key指定国际化信息的key-->
<message key="I18Nkey">校验失败后的提示信息</message>
<!--校验失败后的提示信息:建议用getText("I18Nkey"),否则可能出现Freemarker template Error-->
</field-vallidator>
<!-- 如果校验字段满足多个规则,下面可以配置多个校验器-->
</field>
非字段校验器配置格式:
<validator type="校验器名">
<param name="fieldName">需要被校验的字段</param>
<!--此处需要为不同校验器指定数量不等的校验规则-->
<param name="参数名">参数值</param>
<!--校验失败后的提示信息,其中key指定国际化信息的key-->
<message key="I18Nkey">校验失败后的提示信息</message>
<!--校验失败后的提示信息:建议用getText("I18Nkey"),否则可能出现Freemarker template Error-->
</validator>
非字段校验:先指定校验器:由谁来校验,来校验谁!
字段校验器:先指定校验的属性:我来校验谁,由谁来校验
struts2表单验证里field-validator type值:
指定校验器
int 整数;
double 实数;
date 日期;
expression 两数的关系比较;
email Email地址;
url
visitor
conversion
regex 正则表达式验证;
required 是否为空;
requiredstring 必须字符;
stringlength 输入字符长度限制;
url web地址
visitor 访问
conversion 转换
------------------------
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论