当前位置: 代码迷 >> Java Web开发 >> <html:text>property的有关问题
  详细解决方案

<html:text>property的有关问题

热度:8107   发布时间:2013-02-25 21:15:14.0
<html:text>property的问题
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绑定起来
------解决方案--------------------------------------------------------
探讨
<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类型,需要时手动写代码转成对象
------解决方案--------------------------------------------------------
学习
------解决方案--------------------------------------------------------
探讨
感谢2楼和4楼的回复,但是目前我的Form代码里面,的确按照二位所说,首先对userInfo进行了实例化,其次也有get-set方法,但是仍然无法正常绑定

------解决方案--------------------------------------------------------
对于绝大部分情况而言
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呢?非做不可吗?那试试这个方法
  相关解决方案