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

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

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

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

Spring

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

JavaScript

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

Thymeleaf

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

HTML

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

Q&A

1回答

1809閲覧

JAVAのSpringboot使用。 クライアント側でループした値(URL)をhtml側で使用した際のリンク機能の有効無効を全部に適用させたい

TatsuyaNozawa

総合スコア7

Java

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

Spring

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

JavaScript

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

Thymeleaf

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

HTML

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

0グッド

0クリップ

投稿2015/11/08 05:47

編集2015/11/08 08:36

###前提・実現したいこと
・①の機能を②のリンク表示部分で(リンクの無効を)複数行えるようにしたい

###発生している問題・エラーメッセージ
・1行目はリンクの無効ができたのですがその後のリンクが無効にできなかった

###ソースコード
<Javaソース>
_____________________________________
仮データ生成ソース
@RestController
public class LogicnameAPIRest {

@RequestMapping("/logicnamestub") public EventContet index(HttpServletRequest req) throws Exception { EventContet obj = new EventContet(); obj.setFirst_name("ヤマダ"); obj.setLast_login("20151111"); obj.setRole_id("7"); obj.setSecond_name("タロウ"); List<TableLogicnameBean> ret = new ArrayList<TableLogicnameBean>(); LinkDate linkdate = new LinkDate(); for (int i = 0; i < 5; i++) { TablekoumuBean e = new TableLogicnameBean(); e.setDisplay(linkdate.display[i]); e.setLink(linkdate.link[i]); e.setFlagcount(linkdate.flagcount[i]); ret.add(e); } obj.setMenu_list(ret); return obj; } public static class EventContet { private String first_name; private String second_name; private String role_id; private String last_login; private List<TableLogicnameBean> menu_list; public List<TableLogicnameBean> getMenu_list() { return menu_list; } public void setMenu_list(List<TableLogicnameBean> menu_list) { this.menu_list = menu_list; } public void setFirst_name(String first_name) { this.first_name = first_name; } public void setSecond_name(String second_name) { this.second_name = second_name; } public void setRole_id(String role_id) { this.role_id = role_id; } public void setLast_login(String last_login) { this.last_login = last_login; } public String getFirst_name() { return first_name; } public String getSecond_name() { return second_name; } public String getRole_id() { return role_id; } public String getLast_login() { return last_login; } public static class TablekoumuBean { private String display; private String link; private int flagcount; public String getDisplay() { return display; } public String getLink() { return link; } public int getFlagcount() { return flagcount; } public void setDisplay(String display) { this.display = display; } public void setLink(String link) { this.link = link; } public void setFlagcount(int flagcount) { this.flagcount = flagcount; } } } private static class LinkDate { String[] display = new String[5]; { display[0] = "aaaa"; display[1] = "bbbb"; display[2] = "cccc"; display[3] = "dddd"; display[4] = "eeee"; } String[] link = new String[5]; { link[0] = "http://"; link[1] = "http://"; link[2] = "http://"; link[3] = "http://"; link[4] = "http://"; } int[] flagcount = new int[5]; }

}

_____________________________________
ここからHTMLまでの簡単な流れ
|データは仮データ生成ソースへのリクエストviewbeanから引き出したいデータを
|データ受取viewbeanに入れた状態で、それらをcontrollerに受け渡した後、
|controller側で
|model.addAttribute("html内で使う引数(vbean)",”データ受取viewbeanをnewした変数”)
|上記内容のようにデータをhtmlに渡しました。()

<htmlソース>
_____________________________________

<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <link th:substituteby="slz/web/common/meta :: common_meta" /> <script type="text/javascript"> function pass_check() { // パスワードの取得(myPassWord) myPassWord = prompt("passwordを入力してください", ""); if (myPassWord == "hoge") { return true; } else { alert("入力内容に誤りがあります。"); return false; } } function disableLink() { var target = document.getElementById("roleid"); var studentroleId = "7"; var hogosyaroleId = "8"; if (studentroleId == target.value || hogoroleId == target.value) { for (var temp = 0; 5 > temp; temp++) { document.getElementById("${temp.flagcount}").removeAttribute("href"); ---① } } } </script> </head> <body onload="disableLink()">
<div id="content"> <div style="width: 350px; height: 50px"> <a href="http://localhost:8080/">TOP</a> &#65310; 次の画面 </div> <h1>メニュー</h1> <ul th:each="temp : ${vBean.menulist}"> <li><a th:href="@{${temp.link}}" id="${temp.flagcount}" th:text="${temp.display}" onClick="return pass_check();"></a></li> ---② </ul> <input type="hidden" id="roleid" th:value="${vBean.role_id}" /> </div> <br clear="left" /> </form> <div th:substituteby="slz/web/common/foot :: common_foot"></div> <script th:substituteby="slz/web/common/foot_meta :: common_foot_meta"></script>
</body> </html> ###補足情報(言語/FW/ツール等のバージョンなど)

未熟ながらソースを記述したため、内容が欠けているなどのきついご指摘でもお待ちしております。

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

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

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

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

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

guest

回答1

0

おそらく、disableLink()関数のgetElementById("${temp.flagcount}")のidが固定の値、つまり1行目のidになってしまっています。
${temp.flagcount}の評価は、JavaScriptのループ処理とは別になっているからです。

ブラウザーに表示されたページを、「ソースを表示」で見てみると、Springbootが処理した結果のHTMLが見えるので、そちらで確認してみてください。

getElementById("${temp.flagcount}")を、getElementById(temp)にすれば行けるのでは。

それと、idが数字だけだと後で混乱するかも知れませんので、何か頭に付けた方が良いと思います。
例えばitemとか。

投稿2015/11/08 09:02

argius

総合スコア9388

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

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

TatsuyaNozawa

2015/11/08 10:39

解答ありがとうございます。 それについて確認したところ、argiusさんの言った通り1行目だけ取ってきてたみたいです。 ただうまく複数選択まで至らなかったため本解答を参考にいろいろとまた検証してみます。
argius

2015/11/08 11:01

<li>項目のidの体系を知りたいです。 ${temp.flagcount}は0から1ずつカウントアップになるのですか? もしそうでなければ、getElementById(temp)だとダメですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問