В теге ‹td›‹a href=›‹/a›‹/td› DOUBLE_WHITESPCE в запросе href

У меня очень странная проблема.

    <table border ="1">
                        <tbody>
                            <c:forEach var="question" items="${questions}">                                
                                <tr>
                                    <td>
                                        ${question.getQuestion()}                                     
                                    </td>
                                    <td> 
                                        <c:forEach var="answer" items="${question.getAnswers()}">                                                      
                                            <input type="checkbox" name ="user_answer" value="${answer.getAnswer()}">
                                            ${answer.getAnswer()}
                                            <br />
                                        </c:forEach>                                   
                                    </td>
                                    <td>
                                    <a href="/TutorWebApp/controller?command=edit_qestion&amp;question=${question}">
                                           Edit 
                                    </a>
                                    </td>
                                </tr>
                            </c:forEach>                  
                        </tbody>
</table>

Но если я использую in, я получаю следующую ошибку error_image

Но если я не использую тег <a> в <td>, все в порядке. У меня нет идей. Спасибо


person Ray    schedule 06.05.2012    source источник
comment
@TonyEnnis Неверное значение /TutorWebApp/controller?command=edit_qustion= для атрибута href элемента a: DOUBLE_WHITESPACE в QUERY.   -  person Ray    schedule 06.05.2012


Ответы (3)


Здесь вам нужно закодировать текст вопроса (или весь URL), вызвав URLEncoder#encode()

Вы можете посмотреть эти вопросы и ответы о том, как кодировать URL в ЖСТЛ.

В качестве альтернативы вы можете попробовать позвонить JSTL escapeXml в тексте вашего вопроса.

person anubhava    schedule 06.05.2012
comment
JSTL escapeXml не помогает в этой проблеме ( - person Ray; 06.05.2012
comment
Это проблема с программой проверки HTML netbeans, которая не распознает другой язык внутри файла href. Он выдает ту же фиктивную ошибку для значений ‹?= ?› PHP. - person Mantriur; 21.08.2012

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

Тем не менее, если ваш вопрос содержит символы, которые должны быть экранированы URL и/или HTML, ваш HTML-код будет недействительным. Вы должны использовать тег c:url, чтобы избежать этого:

<c:url var="editQuestionUrl" value="/TutorWebApp/controller">
    <c:param name="command" value="edit_question"/>
    <c:param name="question" value="${question}"/>
</c:url>
<%-- now the params are url-encoded --%>
<a href="${fn:escapeXml(editQuestionUrl)}">Edit</a>
<%-- now the query string is HTML-escaped --%>
person JB Nizet    schedule 06.05.2012

попробуй заменить эту строчку

<a href="/TutorWebApp/controller?command=edit_qestion&amp;question=${question}">

с участием

<a href="/TutorWebApp/controller?command=edit_qestion&amp;question='${question}'">
person Satya    schedule 06.05.2012
comment
Теперь у меня новая ошибка ПРОБЕЛ в ЗАПРОСЕ. Может быть, это лучше, чем DOUBLE)) - person Ray; 06.05.2012