当前位置: 首页 > 知识库问答 >
问题:

如何在java中根据if-else条件向resultset返回的列值添加颜色

茹建茗
2023-03-14

如何为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后,不会显示任何表内容,即表为空。不知道哪里出了问题。。

共有2个答案

卢黎昕
2023-03-14

我看到你在用JSP的?颜色是视图的责任,而不是控制器的责任。您应该在视图中的标题上添加适当的CSS属性。

阎自怡
2023-03-14

我知道了,我想。。。没那么难。:)

<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()内返回一个布尔值。 提前谢谢。