質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1037閲覧

JSPで動的に文字色と文字サイスを変更したいだけなのに・・

Keisuke_NUT

総合スコア7

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/10/29 14:42

前提

いつもお世話になっております。
先日質問させて頂いた発展の部分で沼っています。
TomCatを利用して簡単なウェブアプリケーションもどきを作成してます。

実現したいこと

ユーザが選択した文字の色、大きさで入力されたテキストを移動先のページで表示したい。

発生している問題・エラーメッセージ

<font>タグを利用しても変更が反映されない。

該当のソースコード

jsp

1<%@page contentType="text/html; charset=UTF-8"%> 2<!DOCTYPE html> 3<HTML lang="ja"> 4<HEAD> 5<meta charset="UTF-8"> 6<title>work</title> 7<link rel="stylesheet" type="text/css" href="t1.css" /> 8</HEAD> 9<BODY> 10 <FORM method="post" action="ExJ1Servlet"> 11 文字列<br> <INPUT type="text" name="letter" /> 12 <table> 13 <tr> 14 <td>文字の大きさ</td> 15 <td>文字の色</td> 16 </tr> 17 <tr> 18 <td><label> <input type="radio" name="font_scale" 19 value="2" />とても小さい 20 </label> <label> <input type="radio" name="font_scale" 21 value="3" />小さい 22 </label> <label> <input type="radio" name="font_scale" 23 value="4" />小さいかも? 24 </label> <label> <input type="radio" name="font_scale" 25 value="5" />大きいかも? 26 </label> <label> <input type="radio" name="font_scale" 27 value="6" />大きい 28 </label> <label> <input type="radio" name="font_scale" 29 value="7" />とても大きい 30 </label></td> 31 <td><label> <input type="radio" name="font_color" 32 value="blue" />blue 33 </label> <label> <input type="radio" name="font_color" value="green" />green 34 </label> <label> <input type="radio" name="font_color" value="red" />red 35 </label> <label> <input type="radio" name="font_color" 36 value="purple" />purple 37 </label> <label> <input type="radio" name="font_color" value="brown" />brown 38 </label> <label> <input type="radio" name="font_color" 39 value="yellow" />yellow 40 </label></td> 41 </tr> 42 <tr> 43 <td><INPUT type="submit" value="送信" /></td> 44 </tr> 45 </table> 46 </FORM> 47</BODY> 48</HTML>

javascript

1import java.io.IOException; 2 3import javax.servlet.ServletException; 4import javax.servlet.annotation.WebServlet; 5import javax.servlet.http.HttpServlet; 6import javax.servlet.http.HttpServletRequest; 7import javax.servlet.http.HttpServletResponse; 8 9@WebServlet( urlPatterns={"/ExJ1Servlet" } ) 10public class ExJ1Servlet extends HttpServlet{ 11 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 13 doMain(req,resp); 14 } 15 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 16 doMain(req,resp); 17 } 18 19 20 protected void doMain(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException{ 21 req.setCharacterEncoding("UTF-8"); 22 resp.setContentType("text/html; charset=UTF-8"); 23 String str = req.getParameter("letter"); 24 String font_scale = req.getParameter("font_scale"); 25 String font_color = req.getParameter("font_color"); 26 String moji=str; 27 req.setAttribute("moji", moji); 28 req.setAttribute("font_scale", font_scale); 29 req.setAttribute("font_color", font_color); 30 req.getRequestDispatcher("/ExJ1Output.jsp").forward(req, resp); 31 } 32}

jsp

1<%@page contentType="text/html; charset=UTF-8" %> 2<!DOCTYPE html> 3<HTML> 4<HEAD> 5<META charset="UTF-8"> 6<% String moji = (String)request.getAttribute("moji");%> 7<% String font_color = (String)request.getAttribute("font_color");%> 8<% String font_scale = (String)request.getAttribute("font_scale");%> 9</HEAD> 10<BODY> 11<font color = font_color size = font_scale><% out.print(moji); %></font> 12<% out.print(font_scale); %> 13<% out.print(font_color); %> 14 15</BODY> 16</HTML>

css

1label { 2 display: block; /* ブロックを作るように */ 3 margin: 5px 0; /* 前後のスペース */ 4}

試したこと

(文字サイズに関して)調べて、sizeの型がCDATAであることがわかったが、対象の変数をそれにキャストしようとしても不可能だった。
(文字色に関して)
文字サイズと同様。

そもそも、代入するときには""をつけるのに、String型の変数は反映されないんでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

<font color = ont_color size = font_scale>

変数展開されるわけではなく、そういう文字になってます(あと細かいですがfontタグは廃止された要素なので使わない方が良い)

試したこと

文章では具体的にどう考え何を実施しようとしているか見えないのですが、Javaの問題ではなく、正しいHTMLを組めていないことが問題です。
まずはHTMLを正しく組み、そのHTMLが出力されるように組みましょう。

そういえばJSPでの出力って<% out.pirnt(hoge); %>まで書かなくても<%=hoge%>だけで良かったような。

投稿2022/10/29 19:34

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問