【问题标题】:How to position out.println() when outputting from java servlet?从 java servlet 输出时如何定位 out.println()?
【发布时间】:2016-10-14 15:27:46
【问题描述】:

大家好,请查看上面的屏幕设计链接。在顶部您可以看到“找不到员工!”这是故意的,是输入未找到的员工 ID 的结果,如下面的 servlet 所示。但是,我想知道如何定位这个?或者有没有更简单的方式向用户输出反馈?如您所见,该消息通过显示在顶部而破坏了我的 CSS。有没有更好的方法来输出这条消息?或者也许定位out.println?

ViewEmployeeInfo.java:

out.println("Employee Not Found!"); 
                     RequestDispatcher qs = request.getRequestDispatcher("ViewEmployee.html"); 
                     qs.include(request, response);

ViewEmployee.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset = "UTF-8"> 
<link rel = "stylesheet" type = "text/css" href = "main.css">
<link rel = "stylesheet" type = "text/css" href = "sidebar.css">
<title>Update Employee Information</title>
<style>
table { border-collapse: collapse; width: 50%; } th, td { text-align: left; padding: 8px; } tr:nth-child(even){background-color: #f2f2f2}
tr:hover {background-color: #e2f4ff;}
</style>
</head>

<body>

<ul>
<li><a  href="PersonalInfoOutput">View Personal Information</a></li>
<li><a  href="ExpenseClaim.html">View Expense Claims</a></li>
<li><a  href=asdasd>View Payslips</a></li>
<li><a  href="changePassAdmin.html" >Change Password</a></li>
<li><a  href ="manageEmployee.html" class=active>Maintain Employee Information</a></li>
<li><a  href=asdasdasd>Maintain Tax Information</a></li>
<li><a  href=asdasd>Maintain Payroll Items</a></li>
<li><a  href="TimeSheet.html">Maintain Timesheet</a></li>
<li><a  href="EmployeeExpense.html">Maintain Employee Expenses</a></li>
<li><a  href=asda>Run Payroll</a></li>
<li><a  href=asdasds>Generate Reports</a></li>

</ul>

<div style=margin-left:25%;padding:1px;>
</div>

<div id="container">
<h1>View Employee Information</h1>
<form action ="ViewEmployeeInfo" method = "post"> 

    <table border ="1"> 

    <tr>
    <td>Employee ID Search:</td>
    <td><input type = "search" name = "employee_id"  pattern="[0-9]{4}" title="4 digit number: e.g. 1234" maxlength="4" required>   <input type ="submit" value="Search"> 
    </td>
    </tr>
    </table>
    </form>
    </div>
    </body>
    </html>

【问题讨论】:

  • 为什么还要用servlet来写html
  • @Ramanlfc html 用于显示页面。我正在使用 servlet 与数据库通信以查看员工是否存在。
  • 那么,当您显示来自数据库的信息时,您打算如何显示下一页?使用 JSP、Thymeleaf、FreeMarker,还是……?任何具有动态内容的页面都应该使用具有这些技术之一的模板来构建。 “找不到员工!”消息是动态内容,所以这个页面也应该使用模板构建。

标签: java html css servlets


【解决方案1】:

您可以通过在其中添加标签来使用 CSS 进行修改

out.println("<div id="info">Employee Not Found!</div>");

【讨论】:

  • 你错过了这一点,println 输出被写入响应之前 html 内容被添加,所以文本出现在&lt;!DOCTYPE html&gt; 之前,并且这是非常非常错误的。
  • @Andreas >> java 类中是否还需要 ?因为我在 ViewEmployee.html 中看到了 。
  • Java代码有(缩写)println("Employee Not Found!"); include("ViewEmployee.html");,所以消息写在以&lt;!DOCTYPE html&gt;开头的html内容之前,所以结果是:Employee Not Found!&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;... 是浏览器将看到的。使用您的代码,&lt;div&gt; 将出现在 &lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; 之前,...
【解决方案2】:

使用以下out 声明

out.println("<span class='messageBox'>Employee Not Found!</span>"); 

使用类messageBoxhead标签中的&lt;style&gt;...&lt;/style&gt;内添加css样式,如下所示:

.messageBox {
    color: red;
    margin: 10px;
    padding: 10px;
    font-size: 22px; 
}

根据您的要求更改 css。!!!

【讨论】:

  • 您错过了这一点,println 输出被写入响应添加 html 内容之前,因此文本出现在 &lt;!DOCTYPE html&gt; 之前,并且这是非常非常错误的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2012-11-17
  • 2011-01-31
  • 2019-01-20
  • 1970-01-01
  • 2011-03-16
相关资源
最近更新 更多