使用领域对象来接收用户输入
user对象中包含两个字段:username和password,在Action中有一个User对象user,则在jsp中:
Jsp代码
<input type="text" name="user.username">
<input type="text" name="user.password">
来进行数据绑定。
当Struts2尝试设置user对象的username属性时,将依次调用以下的方法:
Java代码
action.getUser();
action.setUser(new User());
action.getUser().setUserName();
例如, user.address.street这样的表达式会调用:
Java代码
getUser().getAdderss().setStreet(...);
user对象中包含两个字段:username和password,在Action中有一个User对象user,则在jsp中:
Jsp代码
<input type="text" name="user.username">
<input type="text" name="user.password">
来进行数据绑定。
当Struts2尝试设置user对象的username属性时,将依次调用以下的方法:
Java代码
action.getUser();
action.setUser(new User());
action.getUser().setUserName();
Struts2首先尝试获得User对象的引用,当它发现User对象为null时,它将使用User类的默认构造方法创建一个User实例,并调用action的setUser()方法设置这个实例。这样,Struts2就可以设置User对象的username字段了。
例如, user.address.street这样的表达式会调用:
Java代码
getUser().getAdderss().setStreet(...);
Struts2会先创建User对象,接着创建Address对象,然后设置Address对象的street属性。
Struts2中的get、set方法作用:
在Struts2中,客户端和服务器之间的数据传输全部要用到get、set方法:用set方法 ,可以将表单中的值存入Action类。通过Struts2.0标签,调用get方法将Action类中的结果数据显示在页面上。
当在业务逻辑中需要用到页面传过来的值的时候,只要保证Action中属性的set方法和页面中的name属性值<s:textfield name=""/>相同即可。(去掉set,方法名大写变小写)
当在显示页面中需要用到业务逻辑中的返回值时,只要保证页面标签的value值<s:property value=""/> 和Action中属性的get方法形同即可。(用法同上)