在一个STRUTS2 工程中
页面:
<form action="login.action" method="post">
username:<input type="text" name="uaccount.username">
password:<input type="text" name="uaccount.password">
type:<input type="text" name="uaccount.type">
<input type="submit">
</form>相应ACTION配置:
<action name="login" class="com.sjob.struts.user.action.LoginAction">
<result name="index">/index.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action> ACTION 代码:
public class LoginAction extends ActionSupport{
private Uaccount uaccount;
public String execute() throws Exception {
System.out.println("**********run in execute @@@@@@@@@@@@");
System.out.println("***********name="+uaccount.getUsername());
System.out.println("***********password="+uaccount.getPassword());
return "index";
}
public void setUaccount(Uaccount uaccount) {
System.out.println("***** runn int loginAction setaccount"+uaccount);
this.uaccount = uaccount;
}
}问题:在ACTION中如果setUaccount(Uaccount uaccount)这个方法会随着页面中
username:<input type="text" name="uaccount.username">
password:<input type="text" name="uaccount.password">
这样的属性个数而调用几次(如页面有三个属性文本,则在调用三次setUaccount(Uaccount uaccount)进行绑定),并且每次都帮定一个属性值,就是说最后得到的只一个个属性的值,其它全部为NULL. 如上面的ACTION在控制台输出
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@150a0
***********runn int set password=bbbbbbb
*****com.sjob.hibernate.pojo.Uaccount@150a0
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@6399ae
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@56d6cf
***********runn int set useranme=aaaaaaaa
*****com.sjob.hibernate.pojo.Uaccount@56d6cf
[INFO ] 2009-05-04 11:19:29 com.opensymphony.xwork2.validator.ActionValidatorManagerFactory - Detected AnnotationActionValidatorManager, initializing it...
**********run in execute @@@@@@@@@@@@
***********name=aaaaaaaa
***********password=null
页面:
<form action="login.action" method="post">
username:<input type="text" name="uaccount.username">
password:<input type="text" name="uaccount.password">
type:<input type="text" name="uaccount.type">
<input type="submit">
</form>相应ACTION配置:
<action name="login" class="com.sjob.struts.user.action.LoginAction">
<result name="index">/index.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action> ACTION 代码:
public class LoginAction extends ActionSupport{
private Uaccount uaccount;
public String execute() throws Exception {
System.out.println("**********run in execute @@@@@@@@@@@@");
System.out.println("***********name="+uaccount.getUsername());
System.out.println("***********password="+uaccount.getPassword());
return "index";
}
public void setUaccount(Uaccount uaccount) {
System.out.println("***** runn int loginAction setaccount"+uaccount);
this.uaccount = uaccount;
}
}问题:在ACTION中如果setUaccount(Uaccount uaccount)这个方法会随着页面中
username:<input type="text" name="uaccount.username">
password:<input type="text" name="uaccount.password">
这样的属性个数而调用几次(如页面有三个属性文本,则在调用三次setUaccount(Uaccount uaccount)进行绑定),并且每次都帮定一个属性值,就是说最后得到的只一个个属性的值,其它全部为NULL. 如上面的ACTION在控制台输出
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@150a0
***********runn int set password=bbbbbbb
*****com.sjob.hibernate.pojo.Uaccount@150a0
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@6399ae
***** runn int loginAction setaccountcom.sjob.hibernate.pojo.Uaccount@56d6cf
***********runn int set useranme=aaaaaaaa
*****com.sjob.hibernate.pojo.Uaccount@56d6cf
[INFO ] 2009-05-04 11:19:29 com.opensymphony.xwork2.validator.ActionValidatorManagerFactory - Detected AnnotationActionValidatorManager, initializing it...
**********run in execute @@@@@@@@@@@@
***********name=aaaaaaaa
***********password=null
具体检索还是要自己来写。用AOP?