首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

<html:text>property的有关问题

2012-08-14 
html:textproperty的问题Struts1.2中遇到的问题,求教高手关于html:texttag的property属性设置的问题一

<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呢?非做不可吗?那试试这个方法


下面是你的Form:
private User userInfo = new User();
public void setUserName(String userName){
user.setUserName(userName);

public void setPassword(String password){
user.setPassword(password);


public String getUserName(){
return user.getUserName();
}

public String getPassword(){
return user.getPassword();
}

因为JSP页面和FORM的对应该只关心getter and setter名,所以这样做应该可以实现。JSP页面的FORM中的property要注意和setter中的名称对应。
[解决办法]
。。。我的思路已经被抢注,哈哈
[解决办法]
我觉得做不到,
 因为在From中定义对象,再在JSP页面对这个对象的属性操作的话,那就只属于这个对象的,跟在From中定义的类似对象中的属性完全是两码事吧
 如果按LZ这样说,在FromBean中就只定义一个对象就OK了,其他属性就不需要了。

热点排行