【问题标题】:How to Colorize String Results in JSP?如何在 JSP 中为字符串结果着色?
【发布时间】:2022-02-01 09:05:53
【问题描述】:

在我的 jsp 文件中最后一个 as results 返回 3 个不同的结果为W、L 和 D。 如何使用 if 条件和/或其他语句显示 W 代表绿色、L 代表红色和 D 代表黄色?

如果有任何问题我在此链接中添加了代码:https://codeshare.io/EBbOyO

提前感谢那些愿意提供帮助的人。

    <table class="table ">
  <thead>
    <tr class="d-flex">
      <th class="text-center col-xs-1" style="width:1%" scope="col">Week</th>
      <th class="text-center col-xs-1"  scope="col">Match Date</th>
      <th  class="text-left  col-xs-1" scope="col">Home</th>
      <th  class="text-left  col-xs-1" scope="col">Away</th>
      <th class="text-center col-xs-1" style="width:5%"  scope="col">Home Score</th>
      <th class="text-center col-xs-1" style="width:5%"  scope="col">Away Score</th>
            <th class="text-center col-xs-1" style="width:5%"  scope="col">Result</th>
    </tr>

<%
    if(request.getParameter("uid")!=null)
    {
        int id=Integer.parseInt(request.getParameter("uid")); 
        String dburl="jdbc:mysql://localhost:3306/teams"; 
        String dbusername="root";
        String dbpassword="Fener2013"; 

        try
        {
            Class.forName("com.mysql.cj.jdbc.Driver"); 
            Connection con=DriverManager.getConnection(dburl,dbusername,dbpassword); 
            PreparedStatement pstmt=null; //create statement

            pstmt=con.prepareStatement("select m.week, m.match_date, t1.team_name hometeam, m.home_score as homescore, t2.team_name awayteam,m.away_score as awayscore,l.league_name,  CASE WHEN m.home_score > m.away_score THEN 'W' WHEN m.home_score < m.away_score THEN 'L' WHEN m.home_score = m.away_score THEN 'D' END AS results from matches m join teams  t1 on m.home_team_id = t1.team_id join teams  t2 on m.away_team_id = t2.team_id join   leagues l on l.league_id = m.league_id where  m.home_team_id = ? or m.away_team_id = ?");          
            pstmt.setInt(1,id);
            pstmt.setInt(2,id); 
            ResultSet rs=pstmt.executeQuery(); 

            while(rs.next())
            {
                %> 
  <tbody>
    <tr class="d-flex">
      <td class="something col-xs-1" style="width:1%"><%=rs.getString("m.week")%></td>
      <td class="something col-xs-1" ><%=rs.getString("m.match_date")%></td>
      <td class="text-left col-xs-1" ><%=rs.getString("hometeam")%></td>
      <td class="text-left col-xs-1" ><%=rs.getString("awayteam")%></td>
      <td class="something col-xs-1" style="width:5%"  ><%=rs.getString("homescore")%></td>
      <td class="something col-xs-1" style="width:5%"  ><%=rs.getString("awayscore")%></td>
<!--     Below Strings returns 3 different result as W,L and D. How can I show W for green, L for red and D for yellow for using if or other statement? -->
         
    <td class="something col-xs-1" style="width:5%"> <span class="label label-success"><%=rs.getString("results")%></span></td>
    
    </tr>
         </tbody>
                <%
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
%>
</table> 

【问题讨论】:

  • 你会如何在纯 html 中做到这一点?
  • 在纯 HTML 中,如果条件我猜你不能使用。目前我使用所有结果作为绿色标签颜色。
  • JSP 最终会生成纯 HTML(其中可能包含一些 javascript),因此您必须了解如何在纯 HTML 中执行您想要的操作。然后你可以编写你的 JSP 来生成它。

标签: java mysql jsp


【解决方案1】:
<span class='label label-success color-<%=rs.getString("results")%>'><%=rs.getString("results")%></span>

您可以将结果传递给类,并添加样式

<style>
.color-W{
color:green;
}
.color-L{
color:red;
}
.color-D{
color:yellow;
}
</style>

【讨论】:

    猜你喜欢
    • 2021-04-30
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多