如何根据java中对象的变化来更改HTML字段的样式

How to change the style of an HTML field based on the change of an object in java?

本文关键字:HTML 字段 样式 变化 java 对象 何根      更新时间:2023-09-26

我有一个jsp页面,我在其中显示数据库表中的记录。每条记录中都有一个状态字段,显示ok或不ok。我有一个要求,我需要根据以下规则更改HTML表的标题背景

  1. 如果所有记录的状态为ok,则标题背景将为绿色

  2. 如果所有记录的状态都不是ok,则标题背景将为暗红色。

  3. 如果某些记录的状态不确定,则标题背景将显示为黄色

我如何实现这个?

样式应该根据状态值适当地改变CSS类。

你怎么做取决于你如何生成你的HTML。

如果您使用服务器端,使用动态模板解决方案,如Velocity或Thymeleaf,您应该在模板中使用If/else逻辑更改类名。

如果你想要一个客户端解决方案,那么jquery是最好的DOM操作。

我建议您在java代码中使用不同的viviable设置状态,然后您可以在jsp页面中获得它们并达到您的目的。

可能的其他解决方案:我过去曾使用过。我不确定这是不是正确的做法。

  1. 现在,您正在将数据库中的行提取到表中的jsp页面中。在获取时检查是否所有记录的状态都是

    1. 一切正常
    2. 一切不正常
    3. Some Ok
  2. 分别设置变量为int status to 1,2 or 3
  3. 在表的后面创建一个隐藏的div,并给它一个状态值

    <div id="hiddenx" hidden> <%=status%> </div>

  4. 现在使用Javascript

    window.onload = function() {
      var x = document.getElementById("hiddenx").value;
      if(x == 1){
      document.getElementById("header").style.color = "green";
      }else if(x == 2){
      document.getElementById("header").style.color = "darkred"; // set the colrrect one
     }else{
      document.getElementById("header").style.color = "yellow";
    }
    };