Helpers - компьютеры, интернет, программирование

Как предотвратить очистку текстового поля в файле JSP при отправке формы?

Я новичок, поэтому могу сделать что-то совершенно не так. Я использую файл JSP, потому что я много обрабатываю данные и мне удобно работать с Java.

Я хочу иметь форму с текстом и текстовыми областями, где пользователь может нажать кнопку отправки и просмотреть промежуточные результаты, не очищая введенные значения. Я понял, как это сделать с текстом, установив значение в разделе HTML, но текстовая область всегда очищается.

Я не думаю, что текстовые области имеют атрибут значения, такой как текст, и request.setAttribute() не работает.

Вот сокращенная версия моего кода test.jsp:

<html><body>
<form method="post" action="test.jsp">
    Enter your name: 
    <input type="text" size="20" name="txtName" value="<%= request.getParameter("txtName") %>"  />
    <br>
    Enter Sentence:<textarea name="sentence"  ></textarea>
    <br>

    <input type="submit" name="B1" value="Submit" />
</form>

<%
    String name = request.getParameter("txtName");
    if(name != null){
        out.println("Name: " + name + "<br>");
    }

    String str = request.getParameter("sentence");
    if(str != null){
        if(!str.equals(""))
            out.println("Sentence entered: " + str);
            // This does not work properly
            request.setAttribute("sentence", str);
    }
%>

</body></html>

Когда я нажимаю кнопку «Отправить», я отображаю имя и предложение, но текстовое поле очищается.

12.03.2014

Ответы:


1

Вы всегда можете отредактировать значение текстовой области с помощью javascript: сначала установите идентификатор текстовой области, например «текстовая область». Затем сохраните содержимое текстовой области в переменной и запишите ее в текстовую область после нажатия кнопки:

document.getElementById('textarea').innerHTML = textareaValue;

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

<input type="submit" onclick="showResults()" value="Show results" />
12.03.2014
  • Вы сказали, используя javascript, и я не знаю, как использовать javascript в файле jsp. Я добавил строку document.getElementById(sentenceId).innerHTML = str; в часть Java моего кода, но он говорит, что переменная document не может быть разрешена, что имеет смысл для меня, потому что я нигде не объявлял document. Как я уже сказал, я новичок и не уверен, что я делаю. 13.03.2014
  • Спасибо. Я понял, как добавить javascript в jsp, и это работает. Я не могу ответить на свой вопрос в течение 10 часов, но вот строки, которые сработали. %› ‹script type=text/javascript›document.getElementById(sentenceId).innerHTML = ‹%=str%›;‹/script› ‹% 13.03.2014

  • 2

    Я считаю, что самым быстрым способом, наиболее близким к вашему текущему подходу, было бы добавить параметр запроса между тегом textarea, например:

    <form method="post" action="test.jsp">
        Enter your name:
        <input type="text" size="20" name="txtName" value="<%= request.getParameter("txtName") %>"  />
        <br>
        Enter Sentence:<textarea name="sentence"  ><%= request.getParameter("sentence") %></textarea>
        <br>
    
        <input type="submit" name="B1" value="Submit" />
    </form>
    
    12.03.2014

    3

    @Алосо,

    Спасибо. Я понял, как добавить javascript в jsp, и это работает.

    Для всех, у кого есть проблема, вот код, который работает:

    <html><body>
    <form method="post" action="test.jsp">
        Enter your name: 
        <input type="text" size="20" name="txtName" value="<%= request.getParameter("txtName") %>"  />
        <br>
        Enter Sentence:<textarea name="sentence" id="sentenceId" ></textarea>
        <br>
    
        <input type="submit" name="B1" value="Submit" />
    </form>
    
    <%
        String name = request.getParameter("txtName");
        if(name != null){
            out.println("Name: " + name + "<br>");
        }
    
        String str = request.getParameter("sentence");
    %>
        <script type="text/javascript">document.getElementById("sentenceId").innerHTML = "<%=str%>";</script>
    
    <%
        //document.getElementById("sentenceId").innerHTML = str;
        if(str != null){
            if(!str.equals(""))
                out.println("Sentence entered: " + str);
                // This does not work properly
                //request.setAttribute("sentence", str);
        }
    %>
    
    </body></html>
    

    Важная строка:

        %>  <script type="text/javascript">document.getElementById("sentenceId").innerHTML = "<%=str%>";</script>   <%
    
    13.03.2014
    Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

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

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

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