struts2学习笔记(2)

1. Struts2中接收参数

  (1)用Action(class)中的属性来接收参数:自动匹配 

View Code

    当访问http://localhost:8080/struts2Deomo/useradd?username=bai&age=3时,

    Struts2回自动调用useraddd相对应的Action类中的getUsername()和getAge()方法

  (2)使用DomainModel来接受参数

    当参数个数只是action类属性中的一部分,而非所有的时候,可以用DomainModel来接收。Domain(域)一般是一个普通的类,

View Code
import com.opensymphony.xwork2.ActionSupport;

public class User    //普通类,而不是一个action类,没有 extends ActionSupport
{
    private String username;
    private int age;
    
    public String getUsername()
    {
        return username;
    }
    public void setUsername(String username)
    {
        this.username = username;
    }
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
}

    域模型是用来接收参数,并调用相对应参数的get方法,而不是全部属性的get方法。域模型中的Action包含一个属性是domain类的一个对象:

View Code
 1 import com.opensymphony.xwork2.ActionSupport;
 2 
 3 public class UserAction extends ActionSupport
 4 {
 5     private User user;
 6 
 7     public String getUser()
 8     {
 9         return user;
10     }
11     public void setUser(User user)
12     {
13         this.user= user;
14     }
15     
16     @Override
17     public String execute()
18     {
19         return SUCCESS;
20     }
21     
22 }

    浏览器上的url地址为:http://localhost:8080/struts2Deomo/useradd?user.username=ba,则会调用user类中的getUser()方法。

2. 简单数据验证

  在Action中使用addFieldError来保存验证错误信息:

 1 public String add()
 2     {
 3         if(username == null || username != "bai")
 4         {
 5             this.addFieldError("username", "用户名不对");
 6             return ERROR;
 7         }
 8         else
 9             return SUCCESS;
10     }

  

  在error.jsp中显示错误信息:

1   <body>
2     错误提示:. <br>
3     <!--使用fielderror标签 -->
4     <s:fielderror fieldName="username"></s:fielderror>
5     <!--使用property标签,property标签可以取得value stack中的内容 -->
6      <s:property value="errors.username[0]"/>
7   </body>

    

   

原文地址:https://www.cnblogs.com/paulbai/p/2607147.html