• 締切済み

JSPの内容をcssで自由にデザイン

Java 6 HTML 4.01 Windows 7 です。 以下のコードですが、cssでセルの1列目だけ色を変えたいのですが、どうすればいいでしょうか? 今は<td class="aiueo">を入れただけなので、全ての列の色が変わってしまっています。 <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.util.*" %> <jsp:useBean id="cb" class="mybeans.Beanファイル名" scope="request"/> <%! ArrayList colname; ArrayList data; %> <% colname = cb.getColname(); data = cb.getData(); %> <html> <head> <title>サンプル</title> </head> <body> <center> <h2>ようこそ</h2> <hr/> Welcome!<br/> <br/> <table border="1"> <tr bgcolor="#E0C76F"> <% for(int column=0; column<colname.size(); column++){ %> <th> <%= (String) colname.get(column) %> </th> <% } %> </tr> <% for(int row=0; row<data.size(); row++){ %> <tr> <% ArrayList rowdata = (ArrayList) (data.get(row)); for(int column=0; column<rowdata.size(); column++){ %> <td class="aiueo"> <%= rowdata.get(column) %> </td> <% } %> </tr> <% } %> </table> </center> </body> </html>

  • CSS
  • 回答数3
  • ありがとう数3

みんなの回答

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

No.2 の回答と同様ではありますが タグ内でスクリプトレットを使われると読みづらいので 冗長ではありますが以下の様に記述するのがオススメです。 <% if (column == 0) { %> <td class="aiueo"><%= rowdata.get(column) %></td> <% } else { %> <td><%= rowdata.get(column) %></td> <% } %>

KAIJI-000
質問者

補足

早速試してみました。 <td class=" aiueo "> <%= rowdata.get(column) %> </td> <% } %> を <% if (column == 0) { %> <td class="aiueo"><%= rowdata.get(column) %></td> <% } else { %> <td><%= rowdata.get(column) %></td> <% } %> に書き換えましたがコンパイルエラーとなりました。 ただ、行数を見てみると164とかになってますが、jspファイルを見ても Beanファイルを見てもそんなに行はありません。Javaは何かのプログラム(クラスライブラリ?)を 見ているのでしょうか? type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: An error occurred at line: 164 in the generated java file Syntax error, insert "}" to complete Block An error occurred at line: 174 in the generated java file Syntax error on token "}", delete this token An error occurred at line: 175 in the generated java file Syntax error, insert "}" to complete ClassBody Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439) org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) org.apache.jasper.compiler.Compiler.compile(Compiler.java:312) org.apache.jasper.compiler.Compiler.compile(Compiler.java:299) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 注意 原因のすべてのスタックトレースは、Apache Tomcat/6.0.20のログに記録されています。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 <td class="aiueo"> の部分を <td<%= column == 0 ? " class=\"aiueo\" : "" %>> にすれば、一回目のループ時のみclass="aiueo"が出力されるようになります。

KAIJI-000
質問者

お礼

回答ありがとうございました!

KAIJI-000
質問者

補足

そのままコピーペーストしましたが(65のところ)以下のようなエラーが出ました。 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: JSPファイル: /ファイル名.jsp の中の65行目でエラーが発生しました String literal is not properly closed by a double-quote 62: ArrayList rowdata = (ArrayList) (data.get(row)); 63: for(int column=0; column<rowdata.size(); column++){ 64: %> 65: <td<%= column == 0 ? "class=\"aiueo\" : "" %>> 66: <%= rowdata.get(column) %> 67: </td> 68: <% Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439) org.apache.jasper.compiler.Compiler.compile(Compiler.java:334) org.apache.jasper.compiler.Compiler.compile(Compiler.java:312) org.apache.jasper.compiler.Compiler.compile(Compiler.java:299) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 注意 原因のすべてのスタックトレースは、Apache Tomcat/6.0.20のログに記録されています

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

普通に tr td:first-child{color:red;} または tr td{color:red;} tr td+td{color:black;} なお <tr bgcolor="#E0C76F"> は良くない <tr>としておいて th{background-color:#E0C76F;}

KAIJI-000
質問者

お礼

回答有難うございます。

KAIJI-000
質問者

補足

このままだと全ての列の色が変わってしまいます。 ある1列だけ変えたいです。

関連するQ&A

  • Javaにおけるonclickメソッド

    環境としては Java 6 MySQL 5.5 Windows 7 と 8 です。 リンクをクリックしたらサーブレットやjspで処理させたページを表示させたいと思っています。 例、 ------------------------------------------------------------------------------- 映画サイト アクション ヒューマン ラブストーリー SF ドキュメンタリー DB側 作品名 ジャンル 制作年 監督名 aaaaa アクション 2012 あああ bbbbb SF 2000 いいい ccccc ラブストーリー 2009 ううう dddd アクション 1998 えええ アクションというハイパーリンクをクリックするとジャンルが アクションのデータのみ表示させる。 ------------------------------------------------------------------------------ javaとデータベース接続のコードは分かっているのですが、 クリックしたら処理したページに行くと言う部分が分かりません。 JavaScriptにあるonclickですが、Javaにあるのでしょうか? androidとは関係なくサーブレットなどでonclickを使いたいのですが、どんなコードを書けば 実現できるでしょうか? Databasebean.java(データベースに接続するBeanファイル) -------------省略---------------------------- リクエストを受け付けるサーブレット側 import mybeans.*; import javax.servlet.*; import javax.servlet.http.*; public class AAAAA extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { try{ ServletContext sc = getServletContext(); Databasebean cb = new Databasebean (); request.setAttribute("cb", cb); sc.getRequestDispatcher("/BBBB.jsp ") .forward(request, response); } catch(Exception e){ e.printStackTrace(); } } } HTMLとして表示するJSPファイル側 名前 BBBB.jsp <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.util.*" %> <jsp:useBean id="cb" class="mybeans. Databasebean" scope="request"/> <%! ArrayList colname; ArrayList data; %> <% colname = cb.getColname(); data = cb.getData(); %> <html> <head> <title>データベース表示</title> </head> <body> <center> <h2>Welcome</h2> <hr/> 表を表示します<br/> <br/> <table border="1"> <tr bgcolor="#E0C76F"> <% for(int column=0; column<colname.size(); column++){ %> <th> <%= (String) colname.get(column) %> </th> <% } %> </tr> <% for(int row=0; row<data.size(); row++){ %> <tr> <% ArrayList rowdata = (ArrayList) (data.get(row)); for(int column=0; column<rowdata.size(); column++){ %> <td> <%= rowdata.get(column) %> </td> <% } %> </tr> <% } %> </table> </center> </body> </html> 以上よろしくお願いします。

    • ベストアンサー
    • Java
  • JSP内で可変するチェックボックスの選択数を数える

    下記のソースのように数が変化するチェックボックスに各name属性が 割り当てられている場合、JavaScriptでチェックボックスの数を数える 際にfor文を使用したいのですが for (var i = 0 ; i <= ????? ; i++ ) の?????の部分はどのように記述すればよいのでしょうか (チェックボックスの数がいくつあるかをどのように表すのか) <% for(int i = 0; i < list.size(); i++ ) { ArrayList data = (ArrayList) list.get(i); %> <tr class="listTr"> <td class="<%= data.get(8) %>" id="set11"> <% if(data.get(0).equals("1")) { out.println("<input type='checkbox' name='output" + i + "' value='1' "' checked>"); } else { out.println("<input type='checkbox' name='output" + i + "' value='1' "'>"); } %>

  • JSPとjavaの問題

    ResultSet rs = db.getResultSet("SELECT * FROM SHAINLIST "); ArrayList list = new ArrayList(); while(rs.next()) { int state = rs.getInt("attendance"); list.add(new Integer(state)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JSPでDB接続</title> </head> <body> <table> <tr><td>欠席</td><td>><%= countNum(-1, in) %></td></tr> <tr><td>未定</td><td><%= countNum(-1, in) %></td></tr> <tr><td>出席</td><td><%= countNum(-1, in) %></td></tr> </table> 以下のエラーがでてきますが、どういう意味でしょうか。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: JSPファイル: /jsp/tokei.jsp の中の26行目でエラーが発生しました The method countNum(int, int[]) is undefined for the type tokei_jsp 23: </head> 24: <body> 25: <table> 26: <tr><td>キ鄲ハ</td><td>><%= countNum(-1, in) %></td></tr> 27: <tr><td>フ、ト�</td><td>3</td></tr> 28: <tr><td>スミタハ</td><td>3</td></tr> 29: </table> よろしくおねがいします。

    • ベストアンサー
    • Java
  • jspでのArrayListの値の表示

    jsp上でBeanで以下のように設定されている ArrayList<ArrayList<Integer>> a; a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.get(0).add(0); a.get(0).add(1); a.get(1).add(2); a.get(1).add(3); a.get(1).add(4); a.get(1).add(5); a.get(2).add(6); a.get(2).add(7); a.get(2).add(8); aのような行と列が不定のArrayListの全ての値をjspの画面上に  値 値 値  0  2  6  1  3  7    4  8    5 といったようにテーブルで表示したいのですがjspにどのような既述をすればよいでしょうか? クリックしたときの処理などの導入や項目を増やすなど拡張する場合があるので 以下のような形とレイアウトが同じようになると望ましいです <td> <table> <tr>値</tr> <tr>0</tr> <tr>1</tr> <tr>2</tr> </table> </td> <td> <table> <tr>値</tr> <tr>3</tr> <tr>4</tr> <tr>5</tr> </table> </td> <td> <table> <tr>値</tr> <tr>6</tr> <tr>7</tr> <tr>8</tr> </table> </td>

  • tableの外枠をCSSで表示させない方法

    HTMLで作ったテーブルの外枠の縦線をCSSで表示させないようにしたいのですが可能でしょうか? HTMLはさわらずにできる限りCSSでやりたいと思い、いろいろ試してみましたがうまくいきませんでした。 線種はsolidを使いたいです。 よろしくお願いいたします。 <html> <head> <title>css table</title> <style type="text/css"> <!-- table.sample { width:550px; height:auto; border:solid 1px; border-collapse:collapse; border-left:none; border-right:none; } .sample th { width:100px; border:solid 1px; } .sample tr { border:solid 1px; } .sample td { border:solid 1px; } --> </style> </head> <body> <table class="sample" frame="hsides"> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> <tr> <th scope="row">&nbsp;</th> <td>&nbsp;</td> <td></td> <td></td> </tr> </table> </body> </html>

    • ベストアンサー
    • CSS
  • VB 解析

    下記のソースコードを取得するまでは出来ましたが,そこから必要なデータを抜き出す方法が分らず 困っています. 抜き出したいのは,時などの文字列と<class="data_0_0">1017.5</td>の間の1017.5などの数値です. どなたかご教示よろしくお願いいたします. <tr class="mtx"><th rowspan="2">時</th><th colspan="2">気圧(hPa)</th><th rowspan="2">降水量<br>(mm)</th><th rowspan="2">気温<br>(℃)</th><th rowspan="2">露点<br>温度<br>(℃)</th><th rowspan="2">蒸気圧<br>(hPa)</th><th rowspan="2">湿度<br>(%)</th><th colspan="2">風向・風速(m/s)</th><th rowspan="2">日照<br>時間<br>(h)</th><th rowspan="2">全天<br>日射量<br>(MJ/m2)</th><th colspan="2">雪(cm)</th><th rowspan="2">天気</th><th rowspan="2">雲量</th><th rowspan="2">視程<br>(km)</th></tr> <tr class="mtx"><th>現地</th><th>海面</th><th>風速</th><th>風向</th><th>降雪</th><th>積雪</th></tr> <tr class="mtx" style="text-align:right;"><td style="white-space:nowrap">1</td><td class="data_0_0">1017.5</td><td class="data_0_0">1020.8</td><td class="data_0_0">--</td><td class="data_0_0">-3.3</td><td class="data_0_0">-5.3</td><td class="data_0_0">4.1</td><td class="data_0_0">86</td><td class="data_0_0">2.1</td><td class="data_0_0" style="text-align:center">北西</td><td class="data_0_0"></td><td class="data_0_0"></td><td class="data_0_0"></td><td class="data_0_0">26</td><td class="data_0_0"></td><td class="data_0_0"></td><td class="data_0_0"></td></tr>

  • CSSでフォントの大きさを指定するとき

    CSSでフォントの大きさを相対指定したいのですが、Bodyでフォントサイズを80%にすると、テーブルの中はもとのままの100%の大きさです。そこで、Tableのフォントサイズも80%にすると、0.8*0.8したようにさらに小さくなってしまいます。 たとえば、下のようなページだと ----------------------------- <BODY> あいうえお<BR> <TABLE> <TR> <TD>アイウエオ<BR> <TABLE> <TR> <TD>aiueo<BR> </TD> </TR> </TABLE> </TD> </TR> </TABLE> </BODY> ----------------------------- 「あいうえお」が80%の大きさで、「アイウエオ」はさらに小さく、「aiueo」はゴミのように小さくなってしまいます。 どのように指定すれば良いのでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • JSPとJavaBeansについて

    JSPとJavaBeansを用いて情報を共有したいと考えています。 値を取得した後に配列に入れています。 ArrayList list = new ArrayList(); while(rs.next()){ int op = rs.getInt("op"); list.add(new Integer(op)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); この後に、in[i]の要素をBeansに送り、別のJSPでその値を使いたいと考えています。 ただ、Beansで配列のデータを扱う場合にはどのようにすれば宜しいのでしょうか? アドバイスを頂けると助かります。 宜しくお願いします。

  • jspでのremoveによる削除方法

    通販サイトのカートの画面で購入した商品一覧が表示される画面です 削除ボタンで商品を削除したいのですが上手くいきません for(int i=0; i<item.size(); i++){ String[] b=(String[])item.get(i); tableData +="<form action=\"cart.jsp\"><tr><td>"+b[0]+"</td><td>"+b[1]+"</td><td><img src=\""+"img/"+b[2]+"\"</td><td> <input type =\"hidden\" name=\"remove\" value=\""+i+ "\"> <input type=\"submit\" name=\"d\" value=\"カートから削除する\"></form></td></tr>"; } String removeValues=request.getParameter("remove"); session.removeAttribute(""); 全文です <%@ page contentType="text/html;charset=Shift_JIS"%> <%@ page import= "java.util.ArrayList" %> <%@ page import= "java.util.List" %> <%@ page session="true" %> <% request.setCharacterEncoding("Shift_JIS"); String[] Name ={"たらばがに","毛ガニ","いか","うに","あわび"}; String[] Price = {"4000","2500","500","3000","1500"}; String[] Img ={"taraba.gif","ke.gif","ika.gif","uni.gif","awabi.gif"}; String tableData =""; ArrayList item=(ArrayList)session.getAttribute("itemlist"); try { for(int i=0; i<item.size(); i++){ String[] b=(String[])item.get(i); tableData +="<form action=\"cart.jsp\"><tr><td>"+b[0]+"</td><td>"+b[1]+//商品一覧を出す "</td><td><img src=\""+"img/"+b[2]+"\"</td><td><input type =\"hidden\" name=\"remove\" value=\""+i+ "\"><input type=\"submit\" name=\"d\" value=\"カートから削除する\"></form></td></tr>"; } String removeValues=request.getParameter("remove"); session.removeAttribute(""); int cost =0;//合計金額 for(int j=0; j<item.size(); j++){ String[] a=(String[])item.get(j); Integer value=Integer.parseInt(a[1]); cost +=value; session.setAttribute("costs",cost); } }catch(Exception e){ //tableData+=("<tr><td>"+"戻って入力してください"+"</td></tr>"); } %> <!doctype html> <html> <head> </head> <h2>カートの詳細</h2> 合計金額は<%=session.getAttribute("costs")%>円になります<br><!--合計金額の表示 --> <br> <table border ="1"> <%=tableData %> </table> <br> <a href="session.jsp">商品一覧に戻る</a> <br> </html>

    • ベストアンサー
    • Java
  • dataTablesのテーブルの内容がずれる

    3ステップで表をソート&値を検索できるjavascript「dataTables」 http://www.skuare.net/test/jdatatables.html 上記サイトのjavascriptを使いソートで並べ替えることはできましたが、   <thead>    <tr> (1)  <th>Rendering engine</th> (2)  <th>Browser</th> (3)  <th>Platform(s)</th> (4)  <th>Engine version</th> (5)  <th>CSS grade</th>    </tr>   </thead>   <tbody>    <tr class="oddA"> (1)  <td>Gecko</td> (2)  <td>Firefox 1.0</td> (3)  <td>Win 98+ / OSX.2+</td> (4)  <td class="center">1.7</td> (5)  <td class="center">A</td>    </tr> (略)※trがtbodyに10個ほど入ります   </tbody> <thead>の見出し部分の番号が <tbody>部分の番号と同じ並びになるはずなのですが、 (1)(2)(3)(4)(5)ではなく、 (4)(3)(2)(1)(5)となってしまいます。 http://sprymedia.co.uk/dataTables/example_alt_pagination.html ↑は上記解説サイトの元々のサイトなのですが、 こちらのhtmlのソースの<tbody>部分の<td>も(1)~(5)と順番に記述されています。 これだけでは情報不足とは思いますが、 ここを変えたら直るかもしれないなどありましたら教えていただけないでしょうか。 よろしくお願いいたします。