fossil

鸟在笼中,恨关羽不能张飞 人处世上,要八戒更须悟空
posts - 40, comments - 0, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Struts 里面的 <html:text> 之类的表单域标签, 都有一个属性叫: property, 这个属性根据文档是可以嵌套的, 例如下面的 formBean 嵌套了一个属性 User:

public class User {
  private String username;
  
  public String getUsername() {
    return username;
  }
  
  public void setUsername(String username) {
    this.username = username;
  }
}

 

public class UserForm extends FormBean {
  private User user;
  
  public User getUser() {
    return user;
  }
  
  public void setUser(User user) {
    this.user = user;
  }
}

 

那么对应的 JSP 页面里的  Tag 可以写成:

<html:text property="user.username" />

但是如果这时候有人还想给生成的表单加入 JavaScript 验证的话, 必须用下面的写法才能通过:

<script> // 表单验证函数 function validateForm(form) { // this.user.username 会报错 alert( this['user.username'] ); if(this['user.username'] .value == "") { alert("用户名不能为空!"); return false; } return true; }
</script>

这是因为 Struts 标签最后产生的 HTML 如下所示:

 

<form onsubmit="return validateForm(this);">
<input name="user.username" />
</form>

 

直接引用 元素.user.username 肯定会出错的. 正确的方法参考上上面的代码段即可.



BeanSoft 2007-10-17 14:24 发表评论

文章来源:http://www.blogjava.net/beansoft/archive/2007/10/17/153565.html

只有注册用户登录后才能发表评论。


网站导航: