欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Struts2中Action三種接收參數(shù)形式與簡單的表單驗(yàn)證功能

 更新時間:2017年03月08日 16:49:06   作者:小破孩123  
本文以登錄驗(yàn)證為例,進(jìn)行代碼展示,下面給大家詳細(xì)介紹Struts2中Action三種接收參數(shù)形式與簡單的表單驗(yàn)證功能,需要的朋友參考下

有了前幾篇的基礎(chǔ),相信大家對于Struts2已經(jīng)有了一個很不錯的認(rèn)識,本篇我將為大家介紹一些關(guān)于Action接收參數(shù)的三種形式,以及簡單的表單驗(yàn)證實(shí)現(xiàn),下面進(jìn)入正題,首先我們一起先來了解一下最基本的Action接收參數(shù)的形式,直接在我們的Action類中添加成員變量,這樣就可以完成Action接收參數(shù)的操作,具體內(nèi)容詳見代碼展示:

  這里我們以登錄驗(yàn)證為例,進(jìn)行代碼展示,首先是我們的Action類:

/***
 * 最基本的接收參數(shù)形式
 * @author jho
 * http://localhost:8080/Struts3/index!login?name="123"&password="456"
 */
@SuppressWarnings("serial")
public class User extends ActionSupport {
  private String name;
  private int pwd;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getPwd() {
    return pwd;
  }
  public void setPwd(int pwd) {
    this.pwd = pwd;
  }
  public String login(){
    System.out.println("name="+name+" Pwd="+pwd);
    if(123456==pwd){
      return SUCCESS;
    }else{
      return ERROR;
    }
  }
}

  下面我們一起來看一下Action的第二種接收參數(shù)的形式,通過User類對象來完成整個的參數(shù)接收,首先我們創(chuàng)建一個User類:

public class User {
  private String name;
  private String password;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getPassword() {
    return password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
}

  然后通過User對象在Action中進(jìn)行用戶提交參數(shù)的接收:

/***
 * Dormain Model
 * @author jho
 * http://localhost:8080/Struts4/index!login?user.name="123"&user.password="456"
 */
@SuppressWarnings("serial")
public class UserAction extends ActionSupport {
  private User user;
  public User getUser() {
    return user;
  }
  public void setUser(User user) {
    this.user = user;
  }
  public String login(){
    System.out.println("name="+user.getName()+" Pwd="+user.getPassword());
    return SUCCESS;
  }
}

  最后是通過Struts的ModelDriven<User>來進(jìn)行用戶參數(shù)的接收,第一步創(chuàng)建我的User類對象,第二部配置我們的Action:

/***
 * Model Driven
 * @author jho
 * http://localhost:8080/Struts5/index!login?name="123"&password="456"
 */
@SuppressWarnings("serial")
public class UserAction extends ActionSupport implements ModelDriven<User>{
  private User user = new User();
  public String login(){
    System.out.println("name="+user.getName()+" Pwd="+user.getPassword());
    return SUCCESS;
  }
  public User getModel() {
    return user;
  }
}

  所謂ModelDriven,意思是直接把實(shí)體類當(dāng)成頁面數(shù)據(jù)的收集對象。

  對于簡單的表單驗(yàn)證知識,就為大家介紹一下addFieldError()方法:

@SuppressWarnings("serial")
public class InputErrorFilter extends ActionSupport{
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @Override
  public String execute() throws Exception {
    return SUCCESS;
  }
  public String login(){
    System.out.println(name+"");
    if(name!=null && name.equals("hpu")){
      return SUCCESS;
    }else{
      this.addFieldError("nameError", "用戶名輸入有誤");
      this.addFieldError("nameError", "ul li形式輸出錯誤信息");
      return ERROR;
    }
  }
}

  我們的錯誤處理頁面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >
  <title>My JSP 'error.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
  -->
 </head>
 <body>
      操作失敗 <br>
      輸入?yún)?shù):<s:text name="name" /><br/>
    <s:fielderror fieldName="nameError" theme="simple"/><br/>
    <s:property value="errors.nameError[0]"/><br/>
    <s:debug></s:debug>
 </body>
</html>

以上所述是小編給大家介紹的Struts2中Action三種接收參數(shù)形式與簡單的表單驗(yàn)證功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • mybatis-plus使用@EnumValue處理枚舉類型的示例代碼

    mybatis-plus使用@EnumValue處理枚舉類型的示例代碼

    這篇文章主要介紹了mybatis-plus使用@EnumValue處理枚舉類型的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java設(shè)計(jì)模式之java外觀模式詳解

    Java設(shè)計(jì)模式之java外觀模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之外觀模式(Facade模式)介紹,外觀模式(Facade)的定義:為子系統(tǒng)中的一組接口提供一個一致的界面,需要的朋友可以參考下
    2021-09-09
  • 深入解析java HashMap實(shí)現(xiàn)原理

    深入解析java HashMap實(shí)現(xiàn)原理

    這篇文章主要介紹了深入解析java HashMap實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • Java線程生命周期圖文詳細(xì)講解

    Java線程生命周期圖文詳細(xì)講解

    在java中,任何對象都要有生命周期,線程也不例外,它也有自己的生命周期。線程的整個生命周期可以分為5個階段,分別是新建狀態(tài)、就緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)
    2023-01-01
  • Java中String對象的深入理解

    Java中String對象的深入理解

    String對象作為Java語言中重要的數(shù)據(jù)類型之一,是我們平時編碼最常用的對象之一,因此也是內(nèi)存中占據(jù)空間最大的一個對象,然而很多人對它是一知半解,今天我們就來好好聊一聊這個既熟悉又陌生的String,需要的朋友可以參考下
    2023-05-05
  • servlet之web路徑問題_動力節(jié)點(diǎn)Java學(xué)院整理

    servlet之web路徑問題_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了servlet之web路徑問題的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java分頁工具類及其使用(示例分享)

    Java分頁工具類及其使用(示例分享)

    本篇文章主要分享了Java分頁工具類及其使用的示例代碼,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Java中的CyclicBarrier循環(huán)柵欄詳解

    Java中的CyclicBarrier循環(huán)柵欄詳解

    這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄詳解,CyclicBarrier循環(huán)柵欄是用來進(jìn)行線程協(xié)作,等待線程滿足某個計(jì)數(shù),構(gòu)造時設(shè)置計(jì)數(shù)個數(shù),每個線程執(zhí)行到某個需要“同步”的時刻調(diào)用 await()方法進(jìn)行等待,當(dāng)?shù)却木€程數(shù)滿足計(jì)數(shù)個數(shù)時,繼續(xù)執(zhí)行,需要的朋友可以參考下
    2023-12-12
  • java并發(fā)訪問重復(fù)請求過濾問題

    java并發(fā)訪問重復(fù)請求過濾問題

    本篇文章給大家分享了關(guān)于java并發(fā)訪問重復(fù)請求過濾的相關(guān)問題以及解決方法,對此有需要的朋友參考學(xué)習(xí)下。
    2018-05-05
  • 如何設(shè)置Spring Boot測試時的日志級別

    如何設(shè)置Spring Boot測試時的日志級別

    Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。下面我們來一起學(xué)習(xí)一下吧
    2019-06-06

最新評論