我正在考虑使用 Ajax 而不是 TagLib 的想法。最优雅的方式是:使用 Java 注释。这个想法是,设计师或任何人都可以在没有任何 taglib 的情况下制作 HTML,只需使用带有 id 或 name 的“标准”HTML 标签,并调用 Javascript。这样任何所见即所得都可以使用,开发人员不必关心 HTML 格式或它的设计方式。在许多(至少是开源的)WYSIWYG 中,不会在最终结果中显示标记库(或有它的模板),因此很难“预览”。另一个原因是,开发人员应该知道 Java 和 HTML/TagLibs 不应该是必须的,因为我们有 CSS 和 AJAX。
它应该像这样工作:
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 */
...
}
页面.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),您认为这是一个有效的想法吗?