如何为java中ResultSet返回的列值文本添加颜色。我搜索过它,还用眼睛看了看,但没有用。我想在文本上应用颜色的条件是
编辑1
public LinkedHashMap<String, String> beam_CurrentStatus() throws SQLException
{
try
{
con=getConnection();
stmt = con.createStatement();
String sql="SELECT TOP 1 c.logtime, a.BL1_data_SS_ST as BeamLine1,a.BL2_data_SS_ST as BeamLine2,a.BL3_data_SS_ST as BeamLine3,a.BL4_data_SS_ST as BeamLine4,a.BL5_data_SS_ST as BeamLine5,a.BL6_data_SS_ST as BeamLine6,a.BL7_data_SS_ST as BeamLine7,a.BL8_data_SS_ST as BeamLine8,a.BL9_data_SS_ST as BeamLine9,a.BL10_data_SS_ST as BeamLine10,a.BL11_data_SS_ST as BeamLine11, a.BL12_data_SS_ST as BeamLine12,a.BL13_data_SS_ST as BeamLine13,a.BL14_data_SS_ST as BeamLine14,a.BL15_data_SS_ST as BeamLine15,a.BL16_data_SS_ST as BeamLine16,a.BL17_data_SS_ST as BeamLine17,a.BL18_data_SS_ST as BeamLine18,a.BL19_data_SS_ST as BeamLine19,a.BL20_data_SS_ST as BeamLine20,a.BL21_data_SS_ST as BeamLine21,a.BL22_data_SS_ST as BeamLine22,a.BL23_data_SS_ST as BeamLine23,a.BL24_data_SS_ST as BeamLine24,a.BL25_data_SS_ST as BeamLine25,a.BL26_data_SS_ST as BeamLine26,a.BL27_data_SS_ST as BeamLine27,b.st1_prmt_status_p45,c.beam_current,c.beam_energy from INDUS2_BLFE.dbo.main_BLFE_status a inner join INDUS2_MSIS.dbo.main_MSIS_status b on a.logtime=b.logtime inner join INDUS2_BDS.dbo.DCCT c on b.logtime=c.logtime ORDER BY c.logtime DESC ";
stmt.executeQuery(sql);
rs = stmt.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next())
{
if(rs.getInt(29)==1 && rs.getDouble(30)>110 && rs.getDouble(31)>2500)
{
for (int j = 2; j < 29; j++)
{
if (rs.getInt(j) == 1)
{
// al.add(rs.getInt(j));
count += 1;
String name = rsmd.getColumnLabel(j);
map.put(name, "Being Used");
**//Here want to show Green color text**
}
else
{
String name = rsmd.getColumnLabel(j);
map.put(name, "Not Being Used");
**//Here want to show Red color text**
}
}
}
}
}
catch (Exception e) {
System.out.println("\nException in Bean " + e.getMessage());
} finally {
closeConnection(stmt, rs, con);
}
return map;
}
现在我的输出如下:-
光束线状态
光束线1关闭
光束线2关闭
光束线3关闭
光束线4打开
编辑2
我编辑的jsp页面是:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<style>
.green {
color: green;
}
.red {
color: red;
}
</style>
</head>
<table width="500px" border = "1" cellpadding="1">
<tr>
<th>BeamLines</th>
<th>Status(1=Being Used)</th>
</tr>
<c:forEach var="country" items="${bs.beam_CurrentStatus()}">
<c:choose>
<c:when test="${country.value == 'OFF'}">
<tr>
<td class="green"> ${country.key} </td>
<td class="green"> ${country.value} </td>
</tr>
</c:when>
<c:otherwise>
<tr>
<td class="red"> ${country.key} </td>
<td class="red"> ${country.value} </td>
</tr>
</c:otherwise> -->
</c:choose>
</c:forEach>
</table>
</body>
</html>
我想用红色显示关闭状态,用绿色显示打开状态。如何做到这一点。我没有用秋千。提前谢谢。
编辑jsp后,不会显示任何表内容,即表为空。不知道哪里出了问题。。
我看到你在用JSP的?颜色是视图的责任,而不是控制器的责任。您应该在视图中的标题上添加适当的CSS属性。
我知道了,我想。。。没那么难。:)
<style>
.green {
color: green;
}
.red {
color: red;
}
</style>
<table width="500px" border = "1" cellpadding="1">
<tr>
<th>BeamLines</th>
<th>Status(1=Being Used)</th>
</tr>
<c:forEach var="country" items="${bs.beam_CurrentStatus()}">
<c:choose>
<c:when test="${country.value == 'OFF'}">
<tr>
<td class="green"> ${country.key} </td>
<td class="green"> ${country.value} </td>
</tr>
</c:when>
<c:otherwise>
<tr>
<td class="red"> ${country.key} </td>
<td class="red"> ${country.value} </td>
</tr>
</c:otherwise>
</c:choose>
</c:forEach>
</table>
不要忘记通过在上面添加以下内容来导入C:taglib:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
如果对您有帮助,请将此标记为答案。
我有一个数据集 是否有任何方法可以确保,如果不同的的下一个值小于中的值,那么它应该在 列中执行加法。 下面是我期待的结果 所以基本上我寻求一个解决方案,对于每个唯一的< code>field_pointpath,如果它遇到一个小于前一个值的值,那么它应该将前一个值与下一个值相加。 if <代码>值[i 1]
我有一个在不同医院接受治疗的病人的数据集(仅限于住院病人),其中一些分析揭示了几个不一致之处。其中之一是--软件允许病人在不关闭他们之前开放的的情况下入院。 为了更好地理解它,让我们考虑一下示例数据集 如果我们在上面的数据中看到,id为1的患者于1月1日在hospital_1(row-1)入院,并于1月14日出院。出院前患者再次在同一医院入院(第2行);在1月15日(第2行)结束这四项记录之前,再
我目前正在了解React Native中的if-else if-else语句的语法。下面是我理解的一个简单的if-else条件: 但是,当添加另一个条件来生成if-else if-else语句时,我遇到了问题。 如果有人能指出我的缺点,我将不胜感激!
Go语言的条件判断结构也很简单。 package main import "fmt" func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4
数字根是数字中所有数字的递归和。给定n,取n的位数之和。如果该值有两位数,则继续以这种方式递减,直到生成一个位数。这只适用于自然数。 正如您在上面看到的,我已经尝试通过测试“如果输出的值不等于1,则返回”的if fe语句返回个位数。但是,这个返回不起作用,而是从我放在下面以清除返回错误的返回中返回0。对这个问题有什么帮助吗?谢谢
我在枚举中有6个值,使用6 if else是一种很糟糕的做法。我们能以更好的方式实现这一点吗?下面是我的场景: 我在考虑switch,但并没有太大的区别,我还需要根据某些参数在doA()内返回一个布尔值。 提前谢谢。