从JSP打印多个HTML行

时间:2011-11-06 20:35:43

标签: html jsp multiline println

    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? 有没有比我正在做的更好的方式呢?

1 个答案:

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

另见: