Альтернативатег, который позволяет больше форматирования, как BBcode или Wiki - PullRequest
2 голосов
/ 24 января 2011

Я разрабатываю приложение JSP и хочу напечатать пользовательский ввод. Мне нужно что-то вроде тега <c:out>, но затем тег, который позволяет пользователю выполнять некоторое форматирование.

Для начала я хочу перевести \n в <br />, но мне все еще нужен весь XML-код, предоставляемый <c:out>. Затем я понял, что было бы неплохо разрешить больше форматирования, например, синтаксис BBcode или Wiki.

Есть ли библиотека тегов JSP, которая позволяет это?

Ответы [ 3 ]

1 голос
/ 27 января 2011

почему бы не создать свои собственные теги с использованием XML

http://www.java2s.com/Code/Java/JSP/Createyourowntagacustomtagbody.htm

XML-файла:

<tag>
    <description>
        Escapes a String to HTML, either writing it to the response
        or exporting it to a scoped variable. 
        The string may be the value attribute or the tag body.
    </description>
    <name>escapeHTML</name>
    <tag-class>nl.strohalm.cyclos.taglibs.EscapeHTMLTag</tag-class>
    <body-content>JSP</body-content>

    <attribute>
        <description>
            The string value to be escaped. If not set, the tag body will be used instead.
        </description>
        <name>value</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
        <type>java.lang.Object</type>
    </attribute>
    <attribute>
        <description>If set to true, will only replace line breaks for br tags, ignoring other processing. Defaults to false</description>
        <name>brOnly</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
        <type>boolean</type>
    </attribute>
    <attribute>
        <description>
            A context variable name. If provided, instead of writing the escaped value to the response
            output, it will be set on the scope determined by the scope attribute, under this variable name
        </description>
        <name>var</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
        <type>java.lang.String</type>
    </attribute>
    <attribute>
        <description>
            The scope name for the variable to be exported. 
            May be one of: page, request, session or application.
            Defaults to page.
        </description>
        <name>scope</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
        <type>java.lang.String</type>
    </attribute>
</tag>

И затем вы пишете небольшой код Javaтого, чего вы хотите достичь!

например, соответствующий тегу выше простой пример кода Java:

 public static String escape(final String string, boolean brOnly) {
    String out = string;
    if (!brOnly) {
        out = StringEscapeUtils.escapeHtml(out);
    }
    out = StringUtils.replace(out, "\n", "<br />");
    out = StringUtils.replace(out, "\\n", "<br />");
    return out;
}
0 голосов
/ 24 января 2011

Вы также можете рассмотреть вики-подобный редактор, например, тот, который используется здесь в stackoverflow:

http://wmd -editor.com /

0 голосов
/ 24 января 2011

Задумывались ли вы о том, чтобы встроить что-то вроде CKEditor там, где вам это нужно?

http://ckeditor.com/demo

Это отличный инструмент, но убедитесь, что лицензия соответствует вашим требованиям:

http://ckeditor.com/license

Легкой альтернативой этому является TinyMCE:

http://tinymce.moxiecode.com/

...