2013-11-05 34 views
2

我在學習servlets,我試圖創建這個基本的計算器。我試圖將所有例外添加到字符串中,並將該字符串作爲錯誤消息打印在網頁上。我只包括代碼腳本標記內的換行符

public class Calculator extends HttpServlet{ 
    private static final long serialVersionUID = 1L; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     String x = request.getParameter("x"); 
     String y = request.getParameter("y"); 
     DecimalFormat df = new DecimalFormat("#,###.##"); 
     String errorMsg = ""; 
       if (x != null && y == null) { 
      errorMsg = errorMsg.concat("Y cannot be blank\n"); 
     } 
     else if (x == null && y != null) { 
      errorMsg = errorMsg.concat("X cannot be blank"); 
     } 
       out.println("<!doctype html>"); 
     out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Calculator</title>"); 
     out.println("</head>"); 
     out.println("<body>"); 
     if (!errorMsg.equalsIgnoreCase("")) { 
      out.println("<h2>"+errorMsg+"</h2>"); 
     } 

     out.println("<form>"); 
     out.println("<table border='1' style='background-color:#999'>"); 
     out.println("<tr><td>X </td> <td><input type='text' id='xValue' name='x' /></td></tr>"); 
     out.println("<tr><td>Y </td> <td><input type='text' id='yValue' name='y' /></td></tr>"); 
     out.println("<tr><td colspan='2'>"); 
     out.println("<input type='submit' id='plusButton' value='+' name='add' />"); 
     out.println("<input type='submit' id='minusButton' value='-' name='sub' />"); 
     out.println("<input type='submit' id='mulButton' value='*' name='mul' />"); 
     out.println("<input type='submit' id='divButton' value='/' name='div' />"); 
     out.println("</table>"); 
     out.println("</form></body></html>"); 

    } 
} 

的基本部分。如果我輸入字母時,X和Y文本框,我應該得到一個錯誤味精。更具體地說,我應該在兩個單獨的行上得到兩個錯誤消息。然而,我正在同一行上得到他們兩個。在命令行中,我將它們放在不同的行上。我在這裏做錯了什麼?

+0

好的和明確的問題,歡迎來到StackOverflow! –

回答

3

新行字符(\n\r或兩者)不會在HTML中呈現爲新行。

爲了看到HTML新行,你需要使用指定的換行符標籤

<br> 

例如

String errorMsg = ""; 
    if (x != null && y == null) { 
     errorMsg = errorMsg.concat("Y cannot be blank<br>"); 
    } 
    else if (x == null && y != null) { 
     errorMsg = errorMsg.concat("X cannot be blank"); 
    }