0
    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?有没有比我现在做的更好的方法?

4

1 回答 1

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 中的所有其他小脚本)。将纯 HTML 放入 JSP 中,并在必要时使用JSTL核心标签来控制流程。

例如

<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>

也可以看看:

于 2011-11-06T20:38:30.917 回答