【问题标题】:In tag <td><a href="....."></a></td> DOUBLE_WHITESPCE in query href在标签 <td><a href="....."></a></td> DOUBLE_WHITESPCE 在查询 href
【发布时间】:2012-05-15 04:14:22
【问题描述】:

我有一个很奇怪的问题。

    <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 我会得到下一个错误

但是如果我不在&lt;td&gt; 中使用标签&lt;a&gt; 就可以了。我没有任何想法。 谢谢

【问题讨论】:

  • @TonyEnnis Bad value "/TutorWebApp/controller?command=edit_qustion= "for attribute "href" on element "a": DOUBLE_WHITESPACE in QUERY。

标签: java jsp href netbeans-7 servlets


【解决方案1】:

我认为这只是您的编辑器的错误/限制。尝试部署您的 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 --%>

【讨论】:

    【解决方案2】:

    您需要在此处通过调用URLEncoder#encode() 对您的问题文本(或整个 URL)进行编码

    您可以查看this Q&A,了解如何在 JSTL 中对 URL 进行编码。

    或者,您可以尝试在问题文本上调用 JSTL's escapeXml 函数。

    【讨论】:

    • JSTL 的 escapeXml 对这个问题没有帮助(
    • 这是 netbeans HTML 检查器无法识别 href 中的其他语言的问题。它会为 = ?> PHP 值弹出相同的虚假错误。
    【解决方案3】:

    尝试替换此行

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

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

    【讨论】:

    • 现在我有一个新错误 WHITESPACE in QUERY。也许它比 DOUBLE 更好))
    猜你喜欢
    • 2021-03-03
    • 2013-12-31
    • 2019-10-17
    • 2019-01-29
    • 2021-12-26
    • 1970-01-01
    • 2012-06-18
    • 2013-06-24
    • 2021-01-27
    相关资源
    最近更新 更多