TextArea неправильно отображает апострофы (и речевые метки) - PullRequest
0 голосов
/ 30 января 2011

Я довольно новичок в калитке. Может кто-нибудь сказать мне, почему речевые метки и апострофы отображаются текстовой областью в виде набора цифр и знака #? Вот немного кода:

public class QuestionOptions extends BasePage{
private int ID;
private String text;
private TextArea optionText,questionText;
private DropDownChoice isOptionCorrect;
private InvalidInputIndicator optionsLabel,isCorrectLabel;
private FeedbackPanel feedback;
public QuestionOptions(final int ID, String questiontext){
    this.ID=ID;
    text=questiontext;
    Form form=new Form("optionsform");
    add(form);
    feedback=new FeedbackPanel("msgs");
    form.add(feedback);
    feedback.setOutputMarkupId(true);
    questionText=new TextArea("text",new Model(text));
    questionText.setEnabled(false);
    form.add(questionText);

Идея состоит в том, что при разработке вопроса MCQ лектор может добавить к этому вопросу различные варианты. Проблема в том, что: если текст вопроса содержит речевые метки или апострофы, они отображаются забавным образом. Например, слово «не» отображается как не. Если бы кто-нибудь мог дать мне решение этой проблемы, я был бы очень благодарен.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2011
questionText.setEscapeModelStrings(false);
0 голосов
/ 30 января 2011

Основная проблема, с которой вы сталкиваетесь, заключается в том, что кавычки, вопросительные знаки и другие специальные символы отображаются с использованием специальных HTML-кодов. Кажется, что происходит, они конвертируются в свои специальные теги. Вот сайт, который должен помочь вам сгенерировать вспомогательную функцию, которая будет обнаруживать кавычки и другие специальные символы, которые вы затем сможете преобразовать в соответствующий HTML-код.

например, если вы встретили "в текстовом поле текста, вы можете преобразовать его в"

Вот сайт, который должен помочь, http://www.learningmovabletype.com/a/000235display_code/

Также, если это не сработает, вы можете попробовать экранировать специальные символы. Опять же, вам придется написать вспомогательную функцию для их обнаружения. При попадании в кавычку вы добавляете обратную косую черту перед тем, как она выглядит так: "-> \"

...