[導入]Struts 1.2 的 HTML 標簽嵌套屬性(如user.name)如何加入 JavaScript 表單驗證
Posted on 2007-10-17 14:24 J2EE UP UP 閱讀(816) 評論(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.aygfsteel.com/beansoft/archive/2007/10/17/153565.html