- - PR -
で空行が含まれてしまう。。。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-06 13:42
お世話になっております。
StrutsによるJSPの出力です。 ループで別ファイルからHTMLタグを呼んでJSP出力をしているのですが、 JSPソースに<TD></TD>を追加するとテーブルとテーブルの 間に空行が入ってしまいます。<bean:write name="○○"/>にして HTMLタグをそのまま表示させるようにすると、 きちんと空行も入っておらずきちんと表示されているのですが。 <td></td>を外すと空行もなく問題なく詰めて表示されます。 | ||||
|
投稿日時: 2006-11-06 16:13
原因を突き止めているのですが、どうやら<TD>タグにはさまれている
表示する情報の後ろに全角のスペースが含まれているようです。 その全角スペースを削除したいのですが、HTMLタグで何かありますでしょうか。 <td> ○○ </td> という書き方ではなく <td>○○</td>と記述しています。 そもそも、何故全角スペースが含まれるのか分かりません。 | ||||
|
投稿日時: 2006-11-06 16:38
邪推ではずしているかもしれません。 あくまで仮定の話です。 <bean:write name="○○"/> 出力対象にTrimかけてみるのはいかがでしょう? 想定している桁数とDBの実際の桁数がずれていて、 HTMLのテーブル内部改行業されている可能性があります。 <bean:define name="○○" type="java.lang.String"> と <% String ○× = ○○.Trim() %> 使ってその後に <bean:write name="○×"/> として、意図どおりの出力があれば、 DBの桁が表示の桁とずれてるって事ですね。 もしそうだとするのであれば、 HTMLのデザインがDBのけた考慮していないって事になるんじゃないかと。 デザインの作り直しになるかもしれませんね。 まぁ、フォントでごまかすかもしれませんが。 _________________ | ||||
|
投稿日時: 2006-11-06 17:39
スペースのせいではないようです。フォントを小さくしてもテーブルと
テーブルのスペースが開いてしまいます。 なぜか分かる方いらっしゃいましたら、ご教授お願い致します。 | ||||
|
投稿日時: 2006-11-06 18:24
るぱんです。
差し支えなければ、ソースを乗せて頂けますか? _________________ | ||||
|
投稿日時: 2006-11-06 19:20
「テーブルとテーブルの間」となっているのに、セル1つについてだけ書いても、原因を推測するのは難しいですよ。
もう少し全体的にどうなっているのか、説明してみてください。 | ||||
|
投稿日時: 2006-11-07 04:16
たしかに、上の文章だと HTMLの全体構造が 想像できないのですが、
>表示する情報の後ろに全角のスペースが含まれているようです 本当に 全角スペースが入っているなら 1.値自体に スペースが入っている( 全角なのでtrim()では 消せない) とか 2.Tdに対して なぜか 全角スペースをつける CSSが定義されている >テーブルとテーブルの 間に空行が入ってしまいます。 2つのテーブルが 2つのTDに入っているってことでしょうかねえ?1つのTDに2つのテーブルを入れると うまくいかないことがおおいです。 あとは、HTML Table内のTDの数が、すべてのTR であっていないか colspan が失敗している。 テーブルの形がおかしいのであれば、JSPよりもまず 出力されているHTMLの構造を しっかりみれば わかると思います。 適当なHTMLエディターで HTMLの構造をチェックして それで、変なHTMLができていれば JSPのバグを見つけて直す。 ってのはどうでしょうか | ||||
|
投稿日時: 2006-11-07 09:49
パラメータファイルを別のファイルからHTMLのテーブル定義等を読み込んでいます。パラメータファイルには
(,<TABLE BORDER=1 CELLSPACING=0 Width=950,,) (,<TR>,,) (0,,,) //csvの0番目のデータを表示 (1,,,) //csvの1番目のデータを表示 ・・・ というデータ情報が入っていて、 csvファイルを読み込みパラメータファイルの第一パラメータがNULLで無い場合 CSVのn番目の項目を<TD></TD>の中に設定する。 第一パラメータがNULLの場合、無視して第二パラメータを表示する。 <logic:iterate id="csvToken" name="BMIForm" property="csvParam" indexId="csvVertical"> <!--csvParamは2次元配列。1行づつループします--> <logic:iterate id="bodyToken" name="BMIForm" property="bodyParam" offset="0" indexId="vertical"> <% empty2=false; %><!--bodyParamは2次元配列。1行づつループします--> <logic:iterate id="bodyToken2" collection='<%= bodyToken %>' offset="0" indexId="horizontal"> <!--bodyParamを1トークンづつループします--> <logic:equal name="horizontal" value="0" > <logic:empty name="bodyToken2"> <% empty2=true; %> </logic:empty> <logic:notEmpty name="bodyToken2"> <logic:iterate id="csvToken2" collection='<%= csvToken %>' indexId="csvHorizontal"> <logic:equal name="bodyToken2" value="0"> <logic:equal name="csvHorizontal" value="0"> <TD><bean:write name="csvToken2" filter="false"/> </TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="1"> <logic:equal name="csvHorizontal" value="1"> <TD><bean:writeme="csvToken2" filter="false"/>/TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2"value="2"> <logic:equal name="csvHorizontal" value="2"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="3"> <logic:equal name="csvHorizontal" value="3"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="4"> <logic:equal name="csvHorizontal" value="4"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="5"> <logic:equal name="csvHorizontal" value="5"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="6"> <logic:equal name="csvHorizontal" value="6"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> <logic:equal name="bodyToken2" value="7"> <logic:equal name="csvHorizontal" value="7"> <TD><bean:write name="csvToken2" filter="false"/></TD> </logic:equal></logic:equal> </logic:iterate> </logic:notEmpty> </logic:equal> <logic:equal name="horizontal" value="1" > <% if(empty2) { %> <TD><bean:write name="bodyToken2" filter="false"/></TD> <% }else{ %> <% } %> </logic:equal> <logic:equal name="horizontal" value="2" > </logic:equal> <logic:equal name="horizontal" value="3" > </logic:equal> </logic:iterate> </logic:iterate> </logic:iterate> ちょっと複雑なコードですが、ご検討をお願い致します。 |