str[i] = c
перезаписывает значение в i
. Я использую пользовательский тег JSP с динамическими атрибутами. Вы используете его как это:
<util:element elementName="button" name="btn1" disabled="$(isDisabled ? 'disabled' : '')"/>
В основном, то, что делает этот тег, генерируют элемент XML с elementName, и помещает все атрибуты, существующие в тег, но пропускает пустые.
сам тег довольно легко реализовать, моя реализация является всего 44 строками долго.
Чтение об автоматическом jsp к jspx преобразователю я столкнулся <jsp:element>
и <jsp:attribute>
теги. Если я понимаю, что правильно необходимо быть в состоянии сделать что-то как
<jsp:element name="button">
<jsp:attribute name="someAttribute">value</jsp:attribute>
</jsp:element>
и иметь jsp вывод механизма
<button someAttribute="value"/>
или что-то как этот. Единственная проблема, на которую указывают на странице выше, состоит в том, что это, кажется, не работает хорошо с условными конструкциями. Автор преобразователя работал вокруг того создания некоторых тегов помощника, которые можно взглянуть на загрузку исходного кода, который я предполагаю. Надежда, которая помогает.
Я действительно не использую JSP (и я ответил однажды, затем удалил его, когда я понял, "должен допустимым XML" вещь). Самое чистое, которое я могу придумать, является этим:
<% if (isDisabled) { %>
<button name="btn1" disabled="disabled">Hello</button>
<% } else { %>
<button name="btn1">Hello</button>
<% } %>
< % = скучный %> синтаксис не является легальным XML, необходимым для Документов JSP. У Вас есть 2 опции:
<c:choose> <c:when test="${isDisabled}">"disabled"</c:when> <c:otherwise>""</c:otherwise> </c:choose>
Hope, которая помогает:)
Вы можете использовать тег
для решения этой проблемы с использованием допустимого XML:
<jsp:text><![CDATA[<button name="btn1"]]></jsp:text>
<c:if test="${isDisabled}"> disabled="disabled"</c:if>
>
Hello!
<jsp:text><![CDATA[</button>]]></jsp:text>
Это, очевидно, более многословно, чем некоторые другие решения. Но он полностью автономен : никаких пользовательских тегов не требуется. Кроме того, он легко масштабируется на столько атрибутов, сколько вам нужно.
Думаю, прошло некоторое время с момента последнего сообщения по этому поводу, но я столкнулся с той же проблемой с
тегов, т. е. динамически объявляющих, какой вариант выбран.Чтобы решить эту проблему, я сделал собственный тег x; Я разместил подробности в другом ответе здесь
. Я пришел к выводу, что нет хорошего ярлыка; Выражения EL и JSP могут существовать только внутри атрибутов элемента XML (и в содержимом тела). Поэтому вам нужно сделать следующее:
<c:choose>
<c:when test="${isDisabled}"><button name="btn1" disabled="disabled">Hello</button></c:when>
<c:otherwise><button name="btn1">Hello</button></c:otherwise>
</c:choose>
Использование нотации скриптлета не будет работать для документов JSP (.jspx)