我有一个非常奇怪的问题。
<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&question=${question}">
Edit
</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
但如果我使用,我会得到下一个错误
但如果我不在<a>
中使用标记<td>
,那就没关系。我没有任何想法。
感谢
答案 0 :(得分:1)
我认为这只是编辑器的错误/限制。尝试部署JSP,看看它是否按预期工作。
也就是说,如果您的问题包含必须为网址和/或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 --%>
答案 1 :(得分:0)
尝试替换此行
<a href="/TutorWebApp/controller?command=edit_qestion&question=${question}">
带
<a href="/TutorWebApp/controller?command=edit_qestion&question='${question}'">
答案 2 :(得分:0)
您需要通过调用URLEncoder#encode()
对此问题文本(或整个网址)进行编码您可以查看this Q&A如何在JSTL中对URL进行编码。
或者,您可以尝试在问题文本上调用JSTL's escapeXml功能。