Struts1.2中遇到的问题,求教高手
关于<html:text>tag的property属性设置的问题
一般的用法是这样
Form的定义中
{
…………
private String userName;
private String userPassword;
…………
}
JSP中
…………
<html:text property="userName" />
<html:password property="userPassword" />
…………
但是我现在后台的Form中,不是单纯的String变量,而是一个对象
首先是
Class User {
…………
private String userName;
private String userPassword;
…………
}
然后Form里面是
{
…………
private User userInfo;
…………
}
这样的话,在JSP里面,我应该怎么写呢?
尝试1
…………
<html:text property="userInfo.userName" />
<html:password property="userInfo.userPassword" />
…………
结果:画面正常显示,翻译出来的html为
…………
<input type=text name="userInfo.userName" />
<input type=password name="userInfo.userPassword" />
…………
并且无法跟后台的Form绑定
尝试2
…………
<html:text property="userName" name="myForm.userInfo" />
<html:password property="userPassword" name="myForm.userInfo" />
…………
结果:画面无法正常显示,找不到名字为"myForm.userInfo"的Bean
这样两种尝试都失败了,那么究竟应该怎么写呢?还是说在Struts1.2下面,根本就无法实现这样的效果呢?
------解决方案--------------------------------------------------------
帮顶,我觉得form里面为什么要传递类对象呢?在什么情况下能用到?
------解决方案--------------------------------------------------------
<html:text property="userInfo.userName" />
<html:password property="userInfo.userPassword" />
这种方式是对的,因为你在form里定义了一个名为userInfo的User对象,
但是要注意,form里得有userInfo的get,set方法
才能将页面上的表单跟userInfo绑定起来
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
首先呢,user对象要实例化;struts1.x是不会帮你创建对象的
private User userInfo = new User();
其次,form中和user中对应的set和get方法是不能少的.
------解决方案--------------------------------------------------------
STRUTS1.X的Form里属性最好都设置为String类型,需要时手动写代码转成对象
------解决方案--------------------------------------------------------
学习
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
对于绝大部分情况而言
property属性都是值formbean中的对应的属性
------解决方案--------------------------------------------------------
其实你可以转换一下思路的
在FORM中定义三个变量 USER name password
name password的get/set方法不变
user的get/set方法自己定义.
GET/
user = new user();
user.name=getName();
user.password = getPassword();
SET类似
试试行否。
------解决方案--------------------------------------------------------
lz为什么要在Form里做一个这样的property呢?非做不可吗?那试试这个方法