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的國際化
配置資源包
讀取資源包