TagLibの代わりにAjaxを使用するというアイデアを考えていました。最もエレガントな方法は次のとおりです。Javaアノテーションを使用する。アイデアは、デザイナーや誰でも、idまたはnameを持つ「標準」HTMLタグを使用して、taglibなしでHTMLを作成し、Javascriptを呼び出すことができるということです。そうすれば、どのWYSIWYGでも使用でき、開発者はHTML形式やその設計方法を気にする必要がありません。多くの(少なくともオープンソースの)WYSIWYGは、その最終結果にtaglibsを表示しない(またはそのテンプレートを持っている)ため、「プレビュー」するのは困難です。他の理由は、開発者はJavaを知っている必要があり、CSSとAJAXを入手したので、HTML/TagLibsは必須ではないはずです。
次のように機能するはずです。
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なし、別のファイル変更のみであり、XMLはJavaではないという点でHTMLに似ています)は、HTMLの処理方法を定義します。そうすれば、開発者はHTMLでの開発をやめて、JAVA(またはJavaScript)だけを使用できます。それは有効なアイデアだと思いますか?