Тег JSP, который извлекается как строка, не выполняется - PullRequest
0 голосов
/ 24 января 2012

У меня есть класс 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 (который также имеет импорт в вышеприведенный класс)

<td colspan="2">
<%=StartDateField.getInstance(SUBpagebean).render()%>
</td>

Но ничего не отображается. Когда я иду, чтобы просмотреть исходный текст, он показывает возвращенный текст вместо выполнения тега. Как это вызвано и как я могу решить это?

1 Ответ

1 голос
/ 24 января 2012

<%= someExpression() %> означает: вычислить выражение Java someExpression() и записать его результат в средство записи ответов HTTP.Очевидно, что вы пишете <field:text name='first_name' size='65' maxlen='63' style='field' /> прямо в ответ.

Тег JSP должен находиться в статическом исходном коде JSP для оценки.

Обратите внимание, что JSTL - это стандартная библиотека тегов.<field:text> - это пользовательский тег JSP.Это не тег JSTL.

...