我有Java类负责渲染一些html元素,我们为它们创建了一些预定义的标签。
public class StartDateField {
private static StartDateField object;
private StartDateField(){}
public static StartDateField getInstance(){
if(object == null){
object = new StartDateField();
}
return object;
}
public String render(){
String field = "<field:text name='first_name' size='65' maxlen='63' style='field' />";
return field;
}
}
然后我尝试在JSP标记中调用该render方法(它也导入到上面的类中)
<td colspan="2">
<%=StartDateField.getInstance(SUBpagebean).render()%>
</td>
但它什么都没显示。当我去查看源代码时,它显示返回的文本而不是执行标记。这是怎么造成的,我该如何解决?
答案 0 :(得分:1)
<%= someExpression() %>
表示:评估Java表达式someExpression()
,并将其结果写入HTTP响应编写器。显然,您正在将<field:text name='first_name' size='65' maxlen='63' style='field' />
直接写入响应。
JSP标记必须位于要评估的JSP的静态源代码中。
请注意,JSTL是标准的标准库。 <field:text>
是一个自定义JSP标记。它不是JSTL标签。