Struts筆記3

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方法

img

如今使用註解的方式,使用list方法時來跳過執行validate方法

@SkipValidation
    public String list() {
        return "list";
    }

跳過了validate方法的執行,能夠正常訪問list,證實了validate方法時具備全局性的

img

struts2-表單驗證-xml聲明式驗證

全局聲明方式

1.在action包中聲明UserAction-validation.xml文件格式類名-U-validation.xml

2.這種方式配置是全局配置,全部action的方法都會攔截驗證

3.若是其餘方法不想驗證,可配置@SkipValidation註解

4.dtd約束能夠在xwork-core的jar包中找img

局部聲明方式

在action包中聲明UserAction-register-validation.xml文件,聲明格式Action 類名-方法名-validation.xml

Struts2的國際化

軟件的國際化:要使他能同時應對世界不一樣地區和國家的訪問。並針對不一樣地區和國家的訪問,提供相應的,符合來訪者閱讀習慣的頁面或數據

建立一個消息資源包

一個資源包由多個文件組成,這些文件名都有命名規範:主要文件名_語言代碼_國家代碼.properties

語言代碼和國家代碼:有iso規定的

當文件只有主要文件名.properties時,代表他是默認資源包。瀏覽器會根據不一樣的語言環境找對應語言環境的資源包

當沒有時,找默認的

每一個資源包的內容都由相同的key和對應語言環境value組成

img

讀取國際化資源文件

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的國際化

配置資源包

img

讀取資源包

img

相關文章
相關標籤/搜索