java action 同名参数 处理_java相关:Struts2中Action三种接收参数形式与简单的表单验证功能...

java相关:Struts2中Action三种接收参数形式与简单的表单验证功能

发布于 2020-3-14|

复制链接

本文以登录验证为例,进行代码展示,下面给大家详细介绍Struts2中Action三种接收参数形式与简单的表单验证功能,需要的朋友参考下

有了前几篇的基础,相信大家对于Struts2已经有了一个很不错的认识,本篇我将为大家介绍一些关于Action接收参数的三种形式,以及简单的表单验证实现,下面进入正题,首先我们一起先来了解一下最基本的Action接收参数的形式,直接在我们的Action类中添加成员变量,这样就可以完成Action接收参数的操作,具体内容详见代码展示:  这里我们以登录验证为例,进行代码展示,首先是我们的Action类:

```java

/***

* 最基本的接收参数形式

* @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类:

```java

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中进行用户提交参数的接收:

```java

/***

* 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类对象,第二部配置我们的Action:

```java

/***

* Model Driven

* @author jho

* http://localhost:8080/Struts5/index!login?name="123"&password="456"

*/

@SuppressWarnings("serial")

public class UserAction extends ActionSupport implements ModelDriven{

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()方法:

```java

@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;

}

}

}

```

我们的错误处理页面:

```java

" rel="external nofollow" >

My JSP 'error.jsp' starting page

-->

操作失败

输入参数:

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值