一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Struts2中Action三種接收參數形式與簡單的表單驗證功能

Struts2中Action三種接收參數形式與簡單的表單驗證功能

2020-08-26 10:18小破孩123 Java教程

本文以登錄驗證為例,進行代碼展示,下面給大家詳細介紹Struts2中Action三種接收參數形式與簡單的表單驗證功能,需要的朋友參考下

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

  這里我們以登錄驗證為例,進行代碼展示,首先是我們的Action類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/***
 * 最基本的接收參數形式
 * @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的第二種接收參數的形式,通過User類對象來完成整個的參數接收,首先我們創建一個User類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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中進行用戶提交參數的接收:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/***
 * 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>來進行用戶參數的接收,第一步創建我的User類對象,第二部配置我們的Action:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/***
 * 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,意思是直接把實體類當成頁面數據的收集對象。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@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;
    }
  }
}

  我們的錯誤處理頁面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ 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>
      輸入參數:<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三種接收參數形式與簡單的表單驗證功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/AndroidJotting/p/6516752.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本三级s级在线播放 | 国产欧美日韩不卡 | 欧美va免费精品高清在线 | 四虎视屏| 欧美人在线一区二区三区 | 国产美女亚洲精品久久久久久 | 国产一级黄色网 | 99精品国产高清自在线看超 | 国产精品露脸国语对白手机视频 | chinese帅男gay野外性 | 动漫美丽妇人1~2在线看 | 亚洲国产成人综合 | 国产精品视频2021 | 我强进了老师身体在线观看 | 金发美女与黑人做爰 | 国产精品每日在线观看男人的天堂 | 日本红色高清免费观看 | 亚洲图片综合区 | 包臀裙女教师波多野结衣 | 精品综合在线 | 乳色吐息讲的是什么 | 精灵之森高清在线 | 91视在线国内在线播放酒店 | 免费精品99久久国产综合精品 | 日韩小视频在线观看 | 91香蕉国产 | 天选之王漫画顾长歌免费阅读 | 爆操萝莉| 国产98在线 | 国产精品第 | 日本热妇| 欧美视频在线播放观看免费福利资源 | 特级av毛片免费观看 | 美女张开腿黄网站免费精品动漫 | 国内精品视频一区二区三区八戒 | 好大好猛好深好爽视频 | 国产裸舞在线一区二区 | 精品淑女少妇AV久久免费 | 国产区久久| 国产在线一区二区视频 | 19+韩国女主播激情vip视频在线 |