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

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

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

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

Spring

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Q&A

解決済

2回答

47483閲覧

Thymeleafで条件によって活性・非活性の方法

G_D

総合スコア51

Java

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

Spring

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

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

0グッド

1クリップ

投稿2017/06/14 07:16

Thymeleaf初心者です。

Thymeleafで条件によって活性・非活性の方法のご教示お願いいたします。

やりたいこと。
sampleIdが1のときは活性、それ以外のときは非活性。
<input type="text" th:text="*{sample}" th:readonly="???">
上記に
th:if="${(sampleId eq '1')}
をどのように挿入すればよろしいでしょうか。
宜しくお願いいたします。

参考にしたサイト:http://m12i.hatenablog.com/entry/2014/11/01/162838

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

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

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

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

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

guest

回答2

0

ベストアンサー

Thymeleafのバージョンが書かれていないので、汎用的な方で記載します。

th:readonly="${ if文 }" だけで良いです。 if文の中身がtrueのときのみ readonly が出力されます。

例:

html

1th:readonly="${product.getId() eq 'A-2'}"

※Thymeleafは動的な要素を書かずに済ませられるよう作れますので、JSPやJSTLのように条件文を作る都合で、表示に使わない複数の要素を書くのは可能な限り回避できますし、そういった制御用の要素を記述しない方が、元のHTMLを大きく崩すことなく扱えるので良いでしょう。

投稿2017/06/15 01:41

A-pZ

総合スコア12011

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

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

sllmejacob

2017/06/15 02:12

> th:readonly="${ if文 }" だけで良いです。 if文の中身がtrueのときのみ readonly が出力されます。 そうか、th:が付いてるんだから考えてみればそうですね。 質問者さんはA-pZさんの回答していただいた方法でぜひ試してみてください。
G_D

2017/06/16 07:51

ご教示いただきました方法でできました! ありがとうございました!
guest

0

手元で確認してませんが以下のように書けませんか?

thymeleaf

1th:readonly="${(sampleId eq '1')? '':'readonly'}"

或いはth:ifの条件次第で2行書くか。

<input type="text" th:if="${(sampleId eq '1')} th:text="*{sample}" /> <input type="text" th:if="${(sampleId neq '1')} th:text="*{sample}" readonly />

投稿2017/06/14 10:13

sllmejacob

総合スコア72

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問