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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

3回答

1189閲覧

Java jsp で表記を変更したい

abab7200

総合スコア120

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2017/08/22 01:56

java se spring を利用しています。
jspのviewでDBの情報を一覧で表示しようとした際に
性別項目を日本語に変換したいのですが、対応するやり方を検索することができなかった為
どなたかご教授いただければ幸いです。

やりたいこと
jspで性別を日本語で表示したい
男性(jsp)=m(DB上) 女性(jsp)=f(DB上)

※DBはMysqlで性別の項目はString型です

<table class="table table-bordered table-hover"> <tr> <th>姓</th> <th>名</th> <th>性別</th> <th>誕生日</th> </tr> <c:forEach items="${employees}" var="employee" varStatus="status"> <tr> <th>${employee.familyName}</th> <th>${employee.firstName}</th> <th>${employee.sex}</th> <th> <fmt:formatDate value="${employee.birthday}" pattern="yyyy/MM/dd" /></th> </tr> </c:forEach> </table>

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

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

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

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

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

guest

回答3

0

JSTLをお使いでしたら、fmtも使うと良いでしょう。

JSPにて値から文字列へ置き換えるファイル:例えば message.properties を作成し、次のように登録したとします。

sample.gender.m=男性 sample.gender.f=女性

表示するHTMLでは、以下のように定義します。

html

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" isELIgnored="false" %> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 5<!DOCTYPE html> 6<html> 7<head> 8<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9<title>サンプルHTML</title> 10</head> 11<body> 12<fmt:setBundle basename="message"></fmt:setBundle> 13<fmt:message key="sample.gender.${gender}"></fmt:message> 14</body> 15</html>

fmt:setBundle にて、読み込むプロパティファイルを定義します。
fmt:messageのkey属性にて、表示する値を定義しているプロパティ名を指定します。EL式を使って合成もできます。

上記の例では、リクエスト属性に gender の名前で、表示したい性別が m または f で格納されている想定です。
( request.setAttribute("gender", "m"); など )

投稿2017/08/22 03:15

A-pZ

総合スコア12011

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

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

matobaa

2017/08/22 03:21

おおっこれ面白いですねー。ファイル名は message.properties ではなく message_ja.properties でもできるんでしょうか。
momon-ga

2017/08/22 04:00

なるほど。これ、いいですね。多言語対応もさくっとできそうな予感。
abab7200

2017/08/22 04:31

ありがとうございます JSTLはまだ勉強中なので、今後の参考にさせていただきます
A-pZ

2017/08/22 05:54

@matobaa さん ロケールも対応できます。
guest

0

JSTLのCHOOSEを使っては、どうでしょうか。
あとは、SQLでそもそも変換しちゃうとか。

投稿2017/08/22 03:04

momon-ga

総合スコア4820

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

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

abab7200

2017/08/22 04:32

上記のとおり JSTLはまだ勉強中なので、今後の参考にさせていただきます
guest

0

ベストアンサー

性別の表記程度ならば、三項演算子で対応可能です。
EL式で使える演算子は一通り知っておくと良いでしょう。
演算子を使用するELコード (算術演算子、比較演算子、論理演算子)

今後、それだけでは対応できないケースもでてくるかと思いますし、
べた書きで算術演算子を使いまくっていると、
コードの修正が必要になった場合に対応漏れが出て来る可能性があります。
EL式で任意のメソッドをコールする手法を身につけるのが良いかと思います。
http://d.hatena.ne.jp/shin/20090617/p1

投稿2017/08/22 03:19

so87

総合スコア764

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

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

abab7200

2017/08/22 04:32

EL式で対応できました。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問