我在想使用Ajax而不是TagLib。最優雅的方式是:使用Java註釋。 想法是,設計師或任何人都可以在沒有任何taglib的情況下製作HTML,只需使用帶有id或name的「標準」HTML標籤,然後調用Javascript即可。這種方式可以使用任何所見即所得,開發人員不必關心HTML格式或其設計方式。 在許多(至少是開源的)所見即所得中,不要在最終結果中顯示taglibs(或者有模板),所以很難「預覽」。其他原因是,開發者應該知道Java和HTML/TagLibs不應該是必須的,因爲我們得到了CSS和AJAX。使用AJAX代替TagLib?
它應該就是這樣:
MyClass.java:
import ...
// Use the ResourceBundle resource[.{Locale}].properties
@Jay2JI18n(resourceBundle="org.format.resource",name="MyClassForm")
public class MyClass {
private Integer age;
private String name
private Date dob;
private salary;
@Jay2JLabel(resource="label.name")
@Jay2JMaxLength(value=50,required=true,)
@Jay2JException(resource="exception.message")
public String getName() {
...
}
public void setName(String name) {
if (name.trim().equal("")) {
throw new Exception("Name is required");
}
}
/* Getter and setter for age */
...
@Jay2JLabel(message="Salary")
@Jay2JFormat(format="##,###.00",language="en")
@Jay2JFormat(format="##.###,00",language="pt_BR")
// or you could use that to access a property of the ResourceBundle
//@Jay2I18nResource(resource="money.format")
public Date getSalary() {
...
}
/* Setter for salary and getter/setter for the rest */
...
}
page.html中:
<html>
<head>
<SCRIPT>
</SCRIPT>
</head>
<body>
<form onload="Jay2J.formalize(this)">
</form>
</body>
</html>
可以充滿領域的HTML; PageWithFields.html:
<html>
<head>
<SCRIPT>
</SCRIPT>
</head>
<body>
<form action="myfavoritewaytopostthis" onsubmit="return Jay2J.validate(this)" onload="Jay2J.formalizeExistField(this)">
<label>Name</label><input type="text" name="name" id="name" />
<label>DOB</label><input type="text" name="dateOfBirth" id="dob" />
<label>Salary</label><input type="text" name="salary" id="salary" />
<input type="submit" />
</form>
</body>
</html>
這樣的註釋(沒有XML,這就像HTML的方式,這只是另一個文件修改和XML是不是Java),將定義HTML將如何處理。這樣開發人員可以停止在HTML中開發並使用JAVA(或JavaScript),你認爲這是一個有效的想法嗎?