out.println(%><form> +
<p><label for="username">Username:</label><input type="text" name="username" /></p> +
<p><label for="password">Password:</label><input type="password" name="password" /></p> +
<p class="submit"> +
<input type="submit" name="button" value="Login" /> +
<input type="submit" name="button" value="Registrer" /> +
</p> +
</form> <%);
这就是我认为我能做到的,但显然我不能这样,我的问题是,我如何打印多行HTML? 有没有比我正在做的更好的方式呢?
答案 0 :(得分:2)
你做不到。你必须将它们放在一个大的带引号的字符串中。
out.println("<form>" +
"<p><label for=\"username\">Username:</label><input type=\"text\" name=\"username\" /></p>" +
"<p><label for=\"password\">Password:</label><input type=\"password\" name=\"password\" /></p>" +
"<p class=\"submit\">" +
"<input type=\"submit\" name=\"button\" value=\"Login\" />" +
"<input type=\"submit\" name=\"button\" value=\"Registrer\" />" +
"</p>" +
"</form>");
但更好的是不使用out.println()
(以及JSP中的所有其他 scriptlet )。将HTML简单地放在JSP中,并在必要时使用JSTL核心标记来控制流程。
E.g。
<c:if test="${empty activeuser}">
<form>
<p><label for="username">Username:</label><input type="text" name="username" /></p>
<p><label for="password">Password:</label><input type="password" name="password" /></p>
<p class="submit">
<input type="submit" name="button" value="Login" />
<input type="submit" name="button" value="Registrer" />
</p>
</form>
</c:if>