struts标签java
form表单标签web
Action:请求地址。直接写动做名称,不用写contextPathapache
<s:form action="/user/register.action">
method:请求方式,默认是post请求,能够不用写浏览器
enctype:静音编码的MIME类型jsp
Struts2-表单验证-服务端Action验证ide
struts自带表单字段验证post
第一种:重写validate方法,若是数据不对,能够往FieldError添加错误信息编码
public void validate() { //判断用户名是否为null if(StringUtils.isEmpty(user.getUsername())) { addFieldError("username","用户名不能为null"); } } //一旦FiledError有数据就不会执行register方法 public String register(){ System.out.println("register...."); System.out.println(user); return NONE; }
注意:表单必定要与struts标签结合使用表单验证才会有效:code
在进行表单提交的时候会优先调用validate方法,若是FieldError有错误信息就不会执行其余方法。对于action来讲validate方法是全局的orm
package com.gyf.web.action; import com.gyf.service.IUserService; import com.gyf.service.impl.UserServiceImpl; import org.apache.commons.lang3.StringUtils; import com.gyf.model.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override public User getModel() { return user; } public String register(){ System.out.println("register...."); System.out.println(user); return NONE; } public String list() { return "list"; } @Override public void validate() { System.out.println(user.getUsername());//直接经过action访问list时打印为null //判断用户名是否为null if(StringUtils.isEmpty(user.getUsername())) { addFieldError("username","用户名不能为null"); } } }
如今经过action来访问jsp页面出错,由于FieldError有数据,因此不执行list方法
如今使用注解的方式,使用list方法时来跳过执行validate方法
@SkipValidation public String list() { return "list"; }
跳过了validate方法的执行,能够正常访问list,证实了validate方法时具备全局性的
struts2-表单验证-xml声明式验证
全局声明方式
1.在action包中声明UserAction-validation.xml文件格式类名-U-validation.xml
2.这种方式配置是全局配置,全部action的方法都会拦截验证
3.若是其余方法不想验证,可配置@SkipValidation注解
4.dtd约束能够在xwork-core的jar包中找
局部声明方式
在action包中声明UserAction-register-validation.xml文件,声明格式Action 类名-方法名-validation.xml
软件的国际化:要使他能同时应对世界不一样地区和国家的访问。并针对不一样地区和国家的访问,提供相应的,符合来访者阅读习惯的页面或数据
建立一个消息资源包
一个资源包由多个文件组成,这些文件名都有命名规范:主要文件名_语言代码_国家代码.properties
语言代码和国家代码:有iso规定的
当文件只有主要文件名.properties时,代表他是默认资源包。浏览器会根据不一样的语言环境找对应语言环境的资源包
当没有时,找默认的
每一个资源包的内容都由相同的key和对应语言环境value组成
读取国际化资源文件
package com.gyf.test; import java.util.Locale; import java.util.ResourceBundle; import org.junit.Test; public class I18NTest { @Test public void test1() { //默认读取的是中文 //ResourceBundle rb = ResourceBundle.getBundle("resources.message");//包名加文件名 //指定读取某个国家 ResourceBundle rb = ResourceBundle.getBundle("resources.message",Locale.US); System.out.println(rb.getString("login.username")); System.out.println(rb.getString("login.password")); System.out.println(rb.getString("login.submit")); } }
Struts的国际化
配置资源包
读取资源包