Posted on 2007-10-17 14:24
J2EE UP UP 阅读(814)
评论(0) 编辑 收藏
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 肯定会出错的. 正确的方法参考上上面的代码段即可.
文章来源:
http://www.blogjava.net/beansoft/archive/2007/10/17/153565.html